![让程序在终端中运行](https://linux22.com/image/1094730/%E8%AE%A9%E7%A8%8B%E5%BA%8F%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%AD%E8%BF%90%E8%A1%8C.png)
所以我很清楚,nohup
并在命令后加上后缀以&
确保它们进入后台。
但是,如果我运行图形应用程序 - 有时使用两者似乎都不起作用。那么我可以在程序/命令前加上什么前缀来确保它在终端关闭后继续运行?
答案1
如果您希望应用程序在关闭终端窗口时继续运行,您应该执行以下操作:
nohup chromium-browser &
您需要nohup
和&
。
- nohup 表示在 shell 关闭后仍保持此进程/命令运行。
- & 表示将此过程/命令放在后台,这样它就不会阻塞 shell(因此您可以将它用于其他用途。
答案2
当通过 & 运算符在后台运行程序时,它仍然附加到您的会话,并且可以使用 fg、bg、jobs 和 disown 进行控制。
我也遇到了一些有关 nohup 的问题,但 disown 可能就是您要找的东西。
当你在后台运行一个程序时,它有一个作业 ID:
gedit &
[1] 5647
括号 [] 中的数字很有趣。要将其从会话中分离出来,请disown %n
使用该数字运行。对于上述示例:
disown %1
现在您可以安全地退出终端,并且进程不会被终止。
答案3
对于图形应用程序,只需执行这样的操作就可以了(至少对我来说是这样)
chromium-browser&
对于终端应用程序,您应该使用类似screen
或 之类的东西tmux
。
答案4
使用以下命令关闭启动图形程序的终端:
exit