systemd 管理程序 - 重启、自启

示例:

[root@localhost lighttpd]# cat lighttpd.service
[unit]
Description=lighttpd-server
After=network.target

[Service]
Type=forking
ExecStart=/home/lighttpd/lighttpd -f /home/lighttpd/lighttpd.conf
ExecStop=pkill lighttpd
PrivateTmp=true
Restart=always
RestartSec=1

[Install]
WantedBy=multi-user.target

[root@localhost lighttpd]# cat install.sh
#!/bin/sh

cp lighttpd.service /etc/systemd/system/
systemctl daemon-reload
systemctl start lighttpd
systemctl enable lighttpd

[root@localhost lighttpd]#

实例:

app.service

[unit]
Description=app-server
After=network.target

[Service]
Type=forking
ExecStart=/bin/sh /usr/local/app/start.sh
ExecStop=/bin/sh /usr/local/app/stop.sh
PrivateTmp=true
Restart=always
RestartSec=1

[Install]
WantedBy=multi-user.target

start.sh

#!/bin/sh
CWD=$(cd "$(dirname $0)";pwd)
cd $CWD
echo $CWD
nohup ./app > ./log/app.log 2>&1 &
exit 0

stop.sh

#!/bin/sh

appName="app"

CWD=$(cd "$(dirname $0)";pwd)
cd $CWD

PID=`pgrep $appName`
if [ ${
    
    #PID} -gt 0 ];then
    PID=`pwdx $PID`
fi

if [ ${
    
    #PID} -gt 0 ];then
    PID=`echo $PID|grep $CWD|awk -F ":" '{print $1}'`
fi

if [ ${
    
    #PID} -gt 0 ];then
    kill -9 $PID
    if [ $? ];then
        echo -e "killed $appName pid $PID \033[32msucessful\033[0m"
    else
        echo -e "killed $appName pid $PID \033[31mfailed\033[0m"
    fi
else
    echo -e "\033[36mnot found pid ...\033[0m"
fi

##    echo -e "\033[30m 黑色字 \033[0m"
##  echo -e "\033[31m 红色字 \033[0m"
##  echo -e "\033[32m 绿色字 \033[0m"
##  echo -e "\033[33m 黄色字 \033[0m"
##  echo -e "\033[34m 蓝色字 \033[0m"
##  echo -e "\033[35m 紫色字 \033[0m"
##  echo -e "\033[36m 天蓝字 \033[0m"
##  echo -e "\033[37m 白色字 \033[0m"

install:

cp app.service /etc/systemd/system/
systemctl daemon-reload
systemctl start app
systemctl enable app
systemctl status app

Guess you like

Origin blog.csdn.net/weixin_44328568/article/details/121362569