systmd守护进程

文章详细描述了如何修改守护进程名、创建pihealthd.master.service文件,以及编写pihealthd.master.start和pihealthd.master.stop脚本来启动和停止服务。涉及systemd服务管理、bash脚本执行和PID管理。
摘要由CSDN通过智能技术生成

systmd守护进程


  1. 修改守护进程

  2. 守护进程名字pihealthd

  3. 服务名字pihealthd.master

  4. ptintf修改成DBG

sed -i s/printf/GBD注意sprint也会被修改

守护进程里有加两行代码以防失败

int pid = fork();
if (pid > 0) exit(0);

需要三个文件:

首先在lib/systemd/system创建一个服务文件pihealthd_master.service

不要找错文件夹

文件内容:

[Unit]
Description=pihealth.master-1.0
After=syslog.target network.target remote-fs.target nss-lookup.target


[Service]
Type=forking
ExecStart=/usr/bin/pihealth/pihealthd.master.start
ExecStot=/usr/bin/pihealth/pihealthd.client.stop


[Install]
WantedBy=multi-user.target

usr/bin下创建一个文件pihealth

然后就是创建两个pihealthd.master.start 和 pihealthd.master.stop

start的头文件不能加前缀任何注释。 stop可以加但是最好不要加

注意有个cd操作是不可以扩展的

pihealthd.master.start

#!/bin/bash
if [[ ! -e /etc/pihealth.pid ]]; then
    touch /etc/pihealth.pid
fi 

pre_pid=`cat /etc/pihealth.pid`

if test -n $pre_pid ;then 
    ps -ef |grep -w ${pre_pid} |grep pihealth > /dev/null 
    if [[ $? == 0 ]]; then
        echo "Pihealth has already started."
        exit 0
    else
        echo "Pihealth is starting."
	cd /home/Project/Socket_Pro/Master/
	./pihealth.master  
        echo "Pihealth.master started."
    fi 
else 
    echo "Pihealth.master is starting."
    cd /home/Project/Socket_Pro/Master/
	./pihealth.master
    echo "Pihealthd.master started."
fi 
pid=`ps -ef | awk '{if ($8 == "pihealth") print $2}'`
echo $pid > /etc/pihealth.pid

pihealthd.master.stop

#!/bin/bash  
pid=`ps -ef |awk '{if ($8 == "pihealth") print $2}'`
kill -9  $pid
echo "Stopped."
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值