Bash

在沒有輸出的目前目錄中執行程序並拒絕它的單線器?

  • March 1, 2019

我正在嘗試做一些相當簡單的事情:

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

我如何才能在子外殼中打破單線,從給定文件夾執行給定腳本,將輸出清零並將其發送到後台?

問題是您同時使用&兩者;。它們都是命令終止符,不能同時使用。這是您修復的範例:

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

nohup實用程序幾乎可以滿足您的需求:

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'.

引用自:https://unix.stackexchange.com/questions/62346