Shell
無法在後台執行程序
我使用以下命令在後台執行 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 年以來,Solaris
nohup
通過呼叫以下命令允許已經執行的程序:
nohup -p <pid>
或者
nohup -g <pgid>
這將創建一個文件 nohup.out 並將
stdout
核心中的文件描述符替換為引用該文件的文件描述符nohup.out
。