说明:
1.很多时候我们的服务都是通过源码包编译安装,但是有的源码包编译完成后并不提供该服务的sysv风格脚本,我们只能手动执其二进制程序+配置文件
2.如果服务器宕机或重启,就不能自动完成启动,所以我们需要自己来编写脚本并把它放到/etc/init.d/目录,并使用chkconfig --add $service 加入开机启动列表
3.以下脚本是httpd的一个sysv脚本,不过所有的基本sysv风格脚本都一个风格,你只需要把对httpd的判断改成对你编译的程序判断即可
4.此脚本也可以source /etc/init.d/functions 脚本,functions为我们提供了三个常用的功能,不过以下的这个脚本没有source
a.输出打印显示为统一格式
b.daemon 函数 Usage: daemon [+/-nicelevel] {program} 可以向其传递选项 常用的 --user, --pidfile
例: daemon --user=mysql /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
c.killproc 函数 Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]
例:killproc -p /var/run/mysql /usr/local/mysql/bin/mysqld -HUP # reload 功能
5.开启服务程序的reload功能需要,此服务的二进制程序支持接SIGHUP,否则向此服务发出sighup,只能关闭进程,而不能重读配置文件,httpd能够接收hup信号
1 #!/bin/bash 2 # 3 # HTTPD 2.4: Start up the Atlas server daemon 4 # chkconfig 2345 87 13 5 # discription: Apache web server for linux 6 # author: 7 # QQ: 765482322 8 # mail: login_532_gajun@sina.com 9 10 install_dir=/usr/local/apache24/instance/httpd80 11 apachectl=$install_dir/bin/apachectl 12 binfile=$install_dir/bin/httpd 13 pidfile=$install_dir/run/httpd.pid 14 confile=$install_dir/etc/httpd24/httpd.conf 15 lockfile=$install_dir/lock/httpd 16 prog=${install_dir##*/} 17 18 function start() 19 { 20 if ps -ef | grep "$binfile -f $confile" | grep -q -v "grep" && [ -f $lockfile ];then 21 echo -e "