如何在终端中打开应用程序并将其分离?

Jry*_*ryl 20 command-line gnome-terminal

我在我的终端中打开了 Cairo-dock:open cairo-dock并且有效,但是如果我关闭终端,它就会随之而来。无论终端如何,如何保持打开状态?

oer*_*dnj 23

nohup是忽略 HUP(挂断)信号的 POSIX 命令。HUP(挂断)信号通常是终端警告依赖注销进程的方式。如果尚未重定向,通常会进入终端的输出将进入名为 nohup.out 的文件。nohup 是一个低级实用程序,只需配置一个命令即可忽略信号。如下所示,nohup 远不是一个功能齐全的批处理系统,它可以解决异步运行程序的所有问题。

参见手册:

man nohup
Run Code Online (Sandbox Code Playgroud)

例子:

nohup cairo-dock &
Run Code Online (Sandbox Code Playgroud)


pil*_*cks 18

还有一种方式: disown

在 bash shell 中,disown 内置命令用于从作业表中删除作业,或标记作业,以便在父 shell 接收到 SIGHUP 信号时(例如,如果用户注销)不会向它们发送 SIGHUP 信号。

例如:

cairo-dock & disown
Run Code Online (Sandbox Code Playgroud)


llt*_*llt 7

我个人使用 screen 来处理这种东西。

screen -d -m -S cairo_session open cairo-dock
Run Code Online (Sandbox Code Playgroud)

这样做的好处是,如果您想终止 cairo-dock,您可以重新连接到 screen 会话并终止它。

screen -S cairo_session -X quit
Run Code Online (Sandbox Code Playgroud)

屏幕还有其他用途。这是一个终端多路复用器。

  • 但是,我建议使用 tmux 而不是 screen。它具有相同的功能(不同的绑定虽然 Ctrl-b 而不是 Ctrl-a),但比 screen 效果更好(至少对我而言)。 (2认同)