单行代码在当前目录中执行一个没有输出的进程并拒绝它?

单行代码在当前目录中执行一个没有输出的进程并拒绝它?

我正在尝试做一些相当简单的事情:

$ ( cd /opt/myprogram && ./myprocess.sh >/dev/null 2>&1 & ; disown $! )
-bash: syntax error near unexpected token `;'

如何在子 shell 中执行一行代码,从给定文件夹执行给定脚本,清空输出并将其发送到后台?

答案1

问题是你同时使用了&;。它们都是命令终止符,不能同时使用。这是您修复的示例:

( cd /opt/myprogram && ./myprocess.sh >/dev/null 2>&1 & disown )

答案2

诺哈普实用程序几乎是为您正在寻找的东西而设计的:

Usage: nohup COMMAND [ARG]...
  or:  nohup OPTION
Run COMMAND, ignoring hangup signals.

If standard input is a terminal, redirect it from /dev/null.
If standard output is a terminal, append output to 'nohup.out' if possible,
'$HOME/nohup.out' otherwise.
If standard error is a terminal, redirect it to standard output.
To save output to FILE, use 'nohup COMMAND > FILE'.

相关内容