CentOS 下自定义开机启动服务和 chkconfig 使用总结
本文最后更新于 2388 天前(2016-11-6),其中的信息可能已经有所发展或者不再适用于现阶段。
本文全长 670 字,全部读完大约需要 2 分钟。
一、
对于支持 chkconfig 的程序,只要把它扔到 /etc/init.d/ 目录下,然后添加服务,然后用让它开机自动启动就可以了。
比如笔者今天试图让服务器开机自动运行 XAMPP
ln -s /opt/lampp/lampp /etc/init.d/lampp
chkconfig --add lampp
chkconfig lampp on
二、
如果我们想自己写一些脚本,也可以用下面的方法把它注册为服务
主程序 main 里,在开头加入语句。
daemon(0,0);
编写service脚本 /etc/init.d/myservice
#!/bin/bash # chkconfig: 2345 10 90 # Description: This shell script takes care of starting and stopping myservice # XD created on Marcy. 26th, 2015 # # Source function library . /etc/init.d/functions #the service name SNAME=myservice #程序所在路径 WORKPATH=/home/root/myservice #the full path and name of the daemon program #Warning: The name of executable file must be identical with service name PROG="$WORKPATH/$SNAME" RETVAL=0 # start function start() { #check the iccserver status first if [ -f /var/lock/subsys/$SNAME ] then echo "$SNAME is already started!" exit 0; else echo -n $"Starting $SNAME... " daemon $PROG RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SNAME return $RETVAL fi } #stop function stop() { echo "Stopping $SNAME ..." killproc $SNAME rm -rf /var/lock/subsys/$SNAME } case "$1" in start) start ;; stop) stop ;; reload|restart) stop start ;; status) status $SNAME RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 1 esac exit $RETVAL
提升脚本文件权限
chmod 755 /etc/init.d/myservice
最后将service 加入到服务和自启动列表;
chkconfig --add myservice chkconfig myservice on
这里如果 #!/bin/bash 后没有下面这两句的话,就会出现 service myservice does not support chkconfig 问题
chkconfig: 2345 10 90 description: myservice ....
其中 2345 是默认启动级别,级别有 0-6 共 7 个级别。
等级 0 表示:表示关机
等级 1 表示:单用户模式
等级 2 表示:无网络连接的多用户命令行模式
等级 3 表示:有网络连接的多用户命令行模式
等级 4 表示:不可用
等级 5 表示:带图形界面的多用户模式
等级 6 表示:重新启动
10 是启动优先级,90 是停止优先级,优先级范围是 0-100,数字越大,优先级越低。
如果主程序有其他依赖库文件,将依赖库到路径加入到 /etc/ld.so.conf 文件里;
三、讲一下今天遇到的问题
在配置完了 iptables 的配置以后,发现开机启动时不能正确加载配置,systemctl restart iptables 之后就正常了。查了一下发现 CentOS7 还有一个叫 firewalld 的东西,只需
systemctl disable firewalld
iptables 就能正常开机加载配置了
参考资料:http://blog.163.com/xd8171@126/blog/static/6208104320152265474366/