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
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐