加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

守护进程

发布时间:2020-12-15 07:55:00 所属栏目:Java 来源:网络整理
导读:1.创建shell脚本 touch /data/image/deamon.shvi /data/image/deamon.sh 拷贝脚本 #!/bin/bashtest(){ while true do echo `date` /data/image/log.txt sleep 5 done}case $1 instart) path="/root/shouhu.pid" if [ -f $path ]; then pid=`cat /data/image/

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创建守护进程,并设置为系统服务,开机自动启动

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读