守护进程

ぃ、小莉子 提交于 2019-11-28 19:40:09

1.创建shell脚本

touch /data/image/deamon.sh
vi /data/image/deamon.sh

  拷贝脚本

#!/bin/bash

test(){
        while true
        do
                echo `date`  >> /data/image/log.txt
                sleep 5
                    
        done

}


case $1 in
start)
        path="/root/shouhu.pid"
        if [ -f $path ]; then
                pid=`cat /data/image/deamon.pid`
                echo "pid $pid running..."
        else
                test & 
                echo $! > /data/image/deamon.pid
                echo "running $!..." 
        fi
        ;;
stop)
        pid=`cat /data/image/deamon.pid`
		if [ -z pid  ]
		then
			kill -9 $pid
			echo "stop $pid..."
			rm -rf /data/image/deamon.pid
        
		fi
       ;;
restart)
        path="/data/image/deamon.pid"
        if [ -f "$path" ];then
                pid=`cat /data/image/deamon.pid`
                kill -9 $pid
                echo " stop $pid..."
                rm -rf /data/image/deamon.pid

                test &
                echo $! > /data/image/deamon.pid
                echo " restart $!..."
        else
                echo "not run..."
                test &
                echo $! > /data/image/deamon.pid
                echo "run $!..."
        fi 
        ;;
status)
        path="/data/image/deamon.pid"
        if [ -f $path ];then
                pid=`cat /data/image/deamon.pid`
                echo "$pid running..."
        else
                echo "not running..."
        fi
        ;;
*)
        echo "Usage:{start|stop|restart|status}"
        ;;

esac

  2.修改文件为可执行

chmod +x deamon.sh

  3.到/usr/lib/systemd/system下创建test-deamon.service

 

[Unit]  
Description=way test 
After=network.target  
   
[Service]  
Type=forking  
PIDFile=/data/image/deamon.pid  
ExecStart=/data/image/deamon.sh  start
ExecReload=/data/image/deamon.sh  restart
ExecStop=/data/image/deamon.sh  stop
PrivateTmp=true  
Restart=on-failure
RestartSec=1s
   
[Install]  
WantedBy=multi-user.target

  

4.启动守护线程

systemctl enable test-deamon.service

#查看状态
systemctl status test-deamon.service

启动
systemctl start  test-deamon.service

  5.验证杀掉进程是否跑起来

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!