在Gnome终端选项卡上,我运行了
$ nohup chromium-browser &但是当我关闭终端选项卡时,chromium-browser也会退出。nohup不应该阻止这种情况吗?吉尔斯说:
不承认和不承认都可以说是抑制SIGHUP,但以不同的方式。nohup使程序最初忽略信号(程序可能会改变这一点)。nohup还试图安排程序没有控制终端,这样当终端关闭时,内核就不会发送SIGHUP。注销纯粹是shell的内部;它导致shell在终止时不发送SIGHUP。
那么,nohup不让铬浏览器忽略SIGHUP吗?
我在其他可执行文件上也看到了这种情况,比如和Emacs (GUI模式)。但不是在xeyes上。
这是发生在Ubuntu12.04,32位时,问题被发布.
现在我正在运行Ubuntu14.04,安装了google-chrome而不是chromium-browser。同样的事情发生在铬浏览器以前也发生在谷歌-铬现在。当终端选项卡关闭时,nohup google-chrome 2>/dev/null &不会将它从关闭状态中保存下来。/usr/bin/google-chrome是到bash脚本/opt/google/chrome/google-chrome的链接。为什么nohup应用于bash脚本不工作?我们如何使它在bash脚本上工作?Python脚本呢?
发布于 2015-04-02 01:52:13
如果chromium-browser与google-chrome类似,那么我认为最有可能的问题是,chromium-browser不是chromium,而是一个初始化状态的shell包装器,然后是execs chromium。
在我的google-chrome安装中,二进制文件实际上位于/opt/google/chrome中,而/usr/bin中的包装器只是一个shell脚本,它设置了很多关于xdg-*默认值和绝对路径的环境,并在用二进制本身替换自己之前设置了类似的环境。
此时,nohup作为其子调用的脚本最初可能忽略的任何信号都将不再重要,除非包装器脚本小心地安排它,否则(它不是),则ctty将被继承。
尝试file /usr/bin/chromium-browser来检查它是否是我认为是的shell脚本。如果是这样的话,考虑重写它以更适合你。
我可以说,仅仅做google-chrome 2>/dev/null &就能让我打开它,但我不记得这是否是我对脚本所做的修改的结果--这是一年前的事了。
https://unix.stackexchange.com/questions/162749
复制相似问题