首页 > 系统服务 > 详细

守护进程

时间:2019-08-28 14:24:31      阅读:101      评论:0      收藏:0      [点我收藏+]

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

       CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下。每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]

[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.验证杀掉进程是否跑起来

技术分享图片

 

 

docker容器需要加上 

--privileged=true 和 /usr/sbin/init

docker run -i -t -d --privileged=true  -v /usr/local/cpp/matching${index}:/usr/local/cpp/matching -v /data/Image-Storage-Application${index}:/data/Image-Storage-Application${index} -v /data/log/storage${index}:/data/log/storage${index} -p ${port}:${port} --network=arcloud_net --link eureka:eureka-server --name=vlad1 yangzhiran/images-pretty:1.0.0 /usr/sbin/init

  

 

 

参考:

 

systemd - CentOS 7进程守护&监控

 

centos7用shell创建守护进程,并设置为系统服务,开机自动启动

 

守护进程

原文:https://www.cnblogs.com/waynono/p/11423310.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!