如何从终端启动命令,以便终端不是父节点?

Vikrant Chaudhary 25 linux terminal command-line

让我们举一个命令"example-command"的例子.

  1. 我打开终端
  2. example-command在终端写,并example-command执行.
  3. 现在,如果我关闭终端,example-command也会被杀死.
  4. 我现在尝试用" example-command &",但同样的行为.

如何执行命令以便在关闭终端时命令不会终止?

Benjamin Pol.. 28

有两种方式,结果相同.

  1. nohup在启动程序时使用.例如,nohup example-command.您可以正常背景和使用它; 退出后它会继续运行.
  2. 或者,正如@alamar所说,如果你使用bash作为你的shell,你可以使用disown命令.不幸的是,据我所知,这disown是特定于bash的; 如果您使用其他shell,则tcsh可能仅限于上述nohup表单.


Bash.. 11

请先搜索类似的问题.

除了上面列出的方法,您还可以:

setsid command_name

例如:

setsid xclock

谢谢

  • >>请先搜索类似的问题.我做到了.先生.* (3认同)

alamar.. 7

在Zsh(不是bash)中你可以:

example-command &; disown {pid}

要不就

example-command &; disown

  • &符号后面的分号是语法错误.在bash中,PID是可选的,并且需要"-h".所以这应该是:"example-command&disown -h"但这不会重定向stdin/stdout/stderr. (2认同)

MatthieuP.. 5

您还可以考虑使用screen命令.