如果我将 bash 作为调用的第一个进程(即作为 init),结果它将显示以下内容:
init: cannot set terminal process group (-1): Inappropriate ioctl for device
init: no job control in this shell
并且没有信号(例如^C,^Z)起作用。
通过阅读bash-5.1.12的源码,问题出在job.c
4501行的表达式:
(t = tcgetpgrp (shell_tty)) == -1
错误值为ENOTTY
,表示调用进程没有控制终端。
为什么 Bash 在作为 init 调用时没有控制终端?