linux中的service是用于方便对系统服务进行统一标准的管理,比如启动(start),停止(stop),重启(restart)和查看状态(status)等。
service本身命令是一个shell脚本。它在/etc/init.d/目录中查找指定的服务脚本,然后调用该服务脚本进行服务。例如当我们输入service ssh status时,service程序其实是调用/etc/init.d/ssh脚本来完成获取sshd状态的功能。所以service ssh status也等同于/etc/init.d/ssh status
有时候我们需要某个程序能够开机自启动,例如apache程序。同时又要求程序在运行中可以随时停止,重启和查看状态。
这时写一个脚本,并把它注册为一个service,就变得非常有用。
service的写法
service的写法有固定的模板,自己只要完成start(),stop(),restart()等方法中的逻辑就行。以/etc/init.d/ssh脚本为例来说
注册
编写完service脚本之后,并不就意味着可以直接使用了,还需要把自定义的service脚本注册到系统里。
把脚本拷贝至/etc/init.d/下(本例中自定义service脚本叫test)
sudo cp test /etc/init.d/ & cd /etc/init.d
修改脚本的权限
sudo chmod 755 test
配置开机启动
在ubuntu10.04之前版本和在redhat/centos/fedora中都是使用chkconfig来管理的,但是在ubuntu之后的版本就没有了,在这里我们使用update-rc.d来替代chkconfig。具体可以参考这里55sudo update-rc.d test defaults
sudo chkconfig --add test
sudo chkconfig --del test
经过上述步骤test已经成功注册成service了,可以通过sudo service test start|stop|restart或者sudo /etc/init.d/test start|stop|restart启动,停止,重启服务 过了一段时间你不再需要服务了,运行sudo update-rc.d -f test remove卸载服务
网友评论