我目前正在探索 Linux 系统上的进程管理,遇到了一个有趣的问题:如何创建一个直接链接到 init 进程的子进程,该子进程的 PPID(父进程 ID)通常为 1?
答案1
有几种方法可以为 Init 系统创建子进程 - 在 Ubuntu 上systemd
,它的 PID 为 1(Lennart Poettering 的博客名为皮德·艾因斯)。
基本上,您启动的所有守护进程都将是的子进程/sbin/init
,因此具有 PPID 1。这适用于:
systemctl
守护进程以或启动(在我的系统上,是,等等snap
的情况)docker
smbd
- 守护进程从
cron
启动@reboot
(在我的系统上,情况就是这样sshfs
) - 守护进程在登录时启动
.bashrc
(在我的系统上,情况就是这样tmux
)
此外,孤立进程将被 init 系统“接管”,并且也具有 PPID 1。
htop
这在树视图中非常明显: