守护进程

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

     #source /etc/profile      #java -jar /data/image-storage-application-1.0.0.jar --spring.profiles.active=vlad1-test >>/data/log/storage1/java.txt  2>&1  } 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创建守护进程,并设置为系统服务,开机自动启动

 

posted @ 2019-08-28 13:38  WayLu  阅读(155)  评论(0编辑  收藏  举报