Shell

無法在後台執行程序

  • November 17, 2018

我使用以下命令在後台執行 cp.sh 腳本。

nohup sh cp.sh < /dev/null & > /dev/null &
output: Invalid null command.

這個“無效的空命令”的解決方案是什麼?

您在 之間放置了一個空格& >,這是必須的&>。這會將 STDOUT 和 STDERR 都重定向到下一個文件。

所以你需要:

nohup sh cp.sh < /dev/null &> /dev/null &

如果您的 shell 不支持&>,請使用 POSIX 方式重定向 STDOUT 和 STDERR:

nohup sh cp.sh </dev/null >/dev/null 2>&1 &

該消息來自一個抱怨語法的shell:

& > /dev/null &

確實是一個包含a command between two &但此命令沒有命令名稱的命令行,而只是stdout.

順便說一句:對於那些還不知道的人:自 12 年以來,Solarisnohup通過呼叫以下命令允許已經執行的程序:

nohup -p <pid>

或者

nohup -g <pgid>

這將創建一個文件 nohup.out 並將stdout核心中的文件描述符替換為引用該文件的文件描述符nohup.out

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