父进程撤销,子进程也被撤销
可能的条件:
- 如果当前进程是一个 session 的首进程(shell 终端等等),并且该会话终止的时候,系统会向这个 session 的所有前台和后台子进程发送 SIGHUP 信号。若子进程没有处理该信号,则会被撤销
- 显式调用 kill
可以看到 sleep 进程随着父进程终止而终止了
如使用 exit 退出也是一样
父进程被撤销,子进程仍然存在
可能的条件:
- 孤儿进程被接管:父进程正常退出之后,子进程被操作系统的内核 init 线程(macOS 中为 launchd pid=1)接管,成为孤儿进程
- 子进程忽略了 SIGHUP 信号