linux buildroot inittab产生多个进程,即使它没有死

deikduxw  于 2023-10-16  发布在  Linux
关注(0)|答案(1)|浏览(128)

我有一个buildroot inittab由busybox init运行以下条目。

::respawn:/sbin/abcd -C /tmp/abc.conf

如果我删除上面的一行并手动启动进程,"/sbin/abcd -C /tmp/abc.conf"然后它被创建,并且只有一个示例。
但是使用inittab条目,它会继续生成abcd进程的多个示例。

ps aux | grep abcd
 1247 root     /sbin/abcd -C /tmp/abc.conf
 2223 root     /sbin/abcd -C /tmp/abc.conf
 2414 root     /sbin/abcd -C /tmp/abc.conf
 2503 root     /sbin/abcd -C /tmp/abc.conf
 2739 root     /sbin/abcd -C /tmp/abc.conf
bq3bfh9z

bq3bfh9z1#

使用“-d”选项,它可以工作:

::respawn:/sbin/abcd -d -C /tmp/abc.conf

不知道为什么它工作。没有时间研究init行为
Update 1:如果进程以守护进程模式启动,init在第一次fork()后获取SIGCHLD并重新启动进程。如果在非守护进程模式下,init将bot获取SIGCHLD。

相关问题