永发信息网

linux 守护进程的ppid的疑惑

答案:2  悬赏:60  手机版
解决时间 2021-02-05 03:18
我参考经典代码(unix高级编程里的)写了一个守护进程,我在守护进程里每隔半分钟syslog一下它的pid和ppid。但是,第一个输出:ppid为25672,pid为25673 以后的输出都是:ppid为1, pid为25673.
为什么第一个输出不是1?

下面是代码:
其中:
logit是我对syslog的封装,
daemon_init是“圣经”(unix高级编程)上的创建守护进程的代码。


int main(int argc, char* argv[])
{
logit("/tmp/test.log", 0, TRUE, "this is a test print 1 in log");
daemon_init("/var/run/test.pid",TRUE,"/tmp/test.log");
logit("/tmp/test.log", 1, FALSE, "this is a test print 2 in log");
while(1){
logit("/tmp/test.log",3,FALSE,"i am a daemon:%d->%d",getppid(),getpid());
sleep(30);
}
}
最佳答案
如果你不是用init脚本启动而是由命令行启动的话,第一次启动的ppid是第一次daemon_init函数中第一次fork后的子进程的ID,pid是第二次fork后子进程的ID,第一次循环运行时,可能其父进程还未完全退出,或者系统清理过程还未执行,所以不是1,以后的循环中,由于第一次fork的子进程已经结束,第二次fork的子进程成为孤儿进程,被init接管,所以其ppid为1,而其自己的pid并未改变
全部回答
某一个进程在结束时由它的父进程负责删除它。要找到某一个进程的父进程,执行ps -ef命令,输出中的ppid列给出了一个进程的父进程的进程号。 (1)如果ppid为1应该如何做? 如果一个defunct进程的ppid为1,则该defunct进程的父进程为init进程。init进程是系统中所有进程的起源。通常情况下,init进程通过将defunct进程的ppid设为1来收回该进程。 如果一个defunct进程的父进程号为1,则需要确认该defunct进程是否已结束了若干分钟。(方法是等几分钟后再查看该defunct进程是否还存在。)一个系统中,特别是任务繁忙的系统中,父进程为init的defunct进程存在1~2分钟是正常的。defunct进程经常由复杂的shell脚本程序产生,这种情况通常是正常的,并不能说明有问题存在。 当init进程没有处理完/etc/inittab文件而在等其中的某一项命令结束(通常是一个/etc/rc脚本)时,可能会发生问题。在这时候,init进程会忽略掉其它所有结束的子进程,而只等这个特定的子进程结束。由一个挂起的/etc/inittab文件中的任务引起的问题的征兆是:父进程为init的defunct进程无限制的增长。在aix4.3及以后的版本中,init进程的功能被增强,用以有效地处理defunct进程。 如果/etc/inittab文件中含有类似下一行的项,则删除它: install_assist:2:wait:/usr/lib/lpd/pio/etc/pioinit >; /dev/null 2>;&1 该进程会引起defunct进程。该项应在初始化安装结束后被自动删除。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
世界上最漂亮的花? 最神奇的植物?
如起源,发展,等级体系,派系,天敌,种类 等等
浅夏在哪里啊,我有事要去这个地方
申捷自己怎么做?可以做出来吗?具体要一个什么
德政碑的意思是什么啊?知道的请说下!
标签上有一脚丫的加州红酒
汝城县公安局地址在什么地方,想过去办事
曲阜是伟大思想家孔子的故乡,孔子的思想历经
谁能告诉我,我有一部本田cb-1。行驶速度差不
我的世界手机版 怎么把一个地图复制到别的手
欢乐颂中关关为什么不喜欢林师兄
4A91的火花塞,用哪个好
一项工程甲队单独做10天完成,乙队单独做15天
屈座的意思是什么啊?知道的请说下!
6月16日散户如何操作做空上证50
推荐资讯
当事人约定所有权保留,在标的物所有权转移前
我还没结婚,但算命的说我有三夫之命,三夫之
请问,白金币怎么变成魔界币啊?,白金币怎么变
怎样可以提取公积金,本人原在如皋上班,单位
交通事故欠的钱一辈子也不想给,强制执行也没
北流市华航汽车运输有限公司地址有知道的么?
鼠标反转怎么设置
万颗子苗木实业有限公司在什么地方啊,我要过
16,36,25,49,36,64,( )答案是49 ,规律是什么?
武汉精武地址在哪,我要去那里办事
请问:古时,一个山庄里都有哪些人员?
撒娇时说xyz是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?