在 bash 中,当运行时,当子shell 退出时( sleep 123 &)
,进程将继续运行。sleep 123
如何sleep 123
在其父子外壳退出之前停止该进程?
我正在尝试查看该sleep 123
过程是否会因接收SIGHUP
和而终止SIGCONT
。我正在寻找SIGHUP 是否已发送到此孤立进程的示例,为什么它不终止?内核是否默认将 SIGHUP 发送到成为孤立并包含已停止进程的进程组终止所有进程?
在 bash 中,当运行时,当子shell 退出时( sleep 123 &)
,进程将继续运行。sleep 123
如何sleep 123
在其父子外壳退出之前停止该进程?
我正在尝试查看该sleep 123
过程是否会因接收SIGHUP
和而终止SIGCONT
。我正在寻找SIGHUP 是否已发送到此孤立进程的示例,为什么它不终止?内核是否默认将 SIGHUP 发送到成为孤立并包含已停止进程的进程组终止所有进程?
这将显示您试图说明的行为:
这
sleep
会进入后台,然后停止。SIGHUP
然后它在子shell退出时被杀死。信号可以中断一些系统调用;请参阅手册页(特别是
signal(7)
“信号处理程序中断系统调用和库函数”部分)。当调用信号处理程序时,特别是使用的系统调用sleep
会被中断,这在sleep(3)
.