为什么使用bash脚本启动的进程,在终端被关闭后不会被杀死?

案例:
t.sh

#!/usr/bin/env bash

sleep 1000 &

接着我运行./t.sh,然后关闭终端(gnome-terminal),但是sleep进程依然在,这个进程不应该被杀死了么(感觉bash脚本会自动加上nohup的效果)?

阅读 4.1k
1 个回答

https://www.ibm.com/developer...

3.&

这里还有一个关于 subshell 的小技巧。我们知道,将一个或多个命名包含在“()”中就能让这些命令在子 shell 中运行中,从而扩展出很多有趣的功能,我们现在要讨论的就是其中之一。
当我们将"&"也放入“()”内之后,我们就会发现所提交的作业并不在作业列表中,也就是说,是无法通过jobs来查看的。让我们来看看为什么这样就能躲过 HUP 信号的影响吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题