Linux:创建守护进程,注册信号捕获回调函数,使用shell脚本代码管理守护进程
创始人
2024-06-01 01:13:49
0

1.创建守护进程,编译时命名为a.out.
2.在守护进程中注册信号捕捉函数。
3.使用脚本发送自定义信号SIGUSR1给进程a.out。
4.守护进程捕获函数catchSignal()捕捉到10号函数SIGUSR1退出进程。

创建守护进程代码:

#include
#include
#include
#include
#include
void catchSignal(int signum)
{
printf(“signum number is %d\n”,signum);
exit(1);
}
int main(int * argc, const char * argv[])
{
signal(SIGUSR1, catchSignal);//注册信号捕获函数
pid_t pid = fork();//创建子进程
if(pid > 0) exit;//父进程退出,子进程变为孤儿进程
if(pid == 0) //子进程逻辑
{

	printf("my pid is %d; my father pid is:%d\n",getpid(),getppid());setsid();//子进程设置为会话组长,这时进程id,组id,会话id三者相同printf("my pid is %d; my father pid is:%d\n",getpid(),getppid());while(1) {			sleep(1);}
}	

}

脚本代码:

脚本逻辑为:
指定编译器为/bin/bash
获取用户名
在获取a.out的进程id
给进程id发送10号信号SIGUSR1
#! /bin/bash
ps
USER=whoami
echo $USER
WPID=ps -u ${USER} | grep a.out | awk '{print $1}'
echo $WPID
if [ -Z ${WPID} ]; then
echo “the process is not started”
exit 1
fi

kill -10 ${WPID}
echo “kill process ok”
ps

结果:

在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...