linux添加自定义服务有两种方法
第一种:
添加文件 服务名.service 到/usr/lib/systemd/system/
目录下
以supervisord服务为例,supervisord.service文件如下:
#supervisord.service
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
重新加载服务文件
#重载服务文件
systemctl daemon-reload
加入开机自启动
#重载服务文件
systemctl enable supervisord
第二种
以nginx服务为例
在/etc/init.d/
目录下新建服务文件nginx,内容如下
#!/bin/bash
#chkconfig:35 85 15
DAEMON=/usr/local/nginx/sbin/nginx
PID=/usr/local/nginx/log/nginx.pid
case "$1" in
start)
echo "Starting nginx daemon..."
$DAEMON && echo "SUCCESS" #开启nginx
;;
stop)
echo "Stopping nginx daemon..."
$DAEMON -s quit && echo "SUCCESS" #从容停止nginx
;;
reload)
echo "Reloading nginx daemon..."
$DAEMON -s reload && echo "SUCCESS" #平滑重启nginx
;;
restart)
echo "Restarting nginx daemon...."
if [ ! -f "$PID" ]; then
ps -ef | grep nginx | awk '{print "kill -9 "$2}' | sh
$DAEMON && echo "SUCCESS"
else
$DAEMON -s quit
$DAEMON && echo "SUCCESS"
fi
;;
status)
if [ ! -f "$PID" ]; then
echo "Nginx is not running..."
else
echo "nginx is running..."
fi
;;
*)
echo "Usage:service nginx (start|stop|restart|reload|status)"
exit 2
;;
esac
添加执行权限
# 添加执行权限
chmod +x /etc/init.d/nginx
更新服务
# 更新服务
sudo update-rc.d nginx defaults