首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么当我关闭终端时,铬浏览器会被杀死?

为什么当我关闭终端时,铬浏览器会被杀死?
EN

Unix & Linux用户
提问于 2014-10-17 16:36:55
回答 1查看 6.5K关注 0票数 17

这个问题很老了,我还不清楚为什么.

2014年的原始问题:

在Gnome终端选项卡上,我运行了

代码语言:javascript
复制
$ nohup chromium-browser &

但是当我关闭终端选项卡时,chromium-browser也会退出。nohup不应该阻止这种情况吗?吉尔斯说:

不承认和不承认都可以说是抑制SIGHUP,但以不同的方式。nohup使程序最初忽略信号(程序可能会改变这一点)。nohup还试图安排程序没有控制终端,这样当终端关闭时,内核就不会发送SIGHUP。注销纯粹是shell的内部;它导致shell在终止时不发送SIGHUP。

那么,nohup不让铬浏览器忽略SIGHUP吗?

我在其他可执行文件上也看到了这种情况,比如和Emacs (GUI模式)。但不是在xeyes上。

这是发生在Ubuntu12.04,32位时,问题被发布.

2015年更新,

现在我正在运行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脚本呢?

EN

回答 1

Unix & Linux用户

发布于 2015-04-02 01:52:13

如果chromium-browsergoogle-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 &就能让我打开它,但我不记得这是否是我对脚本所做的修改的结果--这是一年前的事了。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/162749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档