如果我这样做
nohup cmd1 | cmd2 &
与
相同nohup "cmd1 | cmd2" &
我希望我nohup
一切,因为cmd1
会在端口8023上收听。
答案 0 :(得分:47)
不,您需要单独将nohup添加到命令中。
建议使用以下内容:
nohup sh -c "cmd1 | cmd2" &
或者:
nohup $SHELL <<EOF &
cmd1 | cmd2
EOF
答案 1 :(得分:11)
作为nohup
的替代方案,我建议
( cmd1 | cmd2 ) > logfile < /dev/null 2>&1 &
通过从终端重新路由stdin,stdout和sterr,这可以达到与nohup相同的效果,其语法至少是我喜欢的。
答案 2 :(得分:0)
nohup cmd1 | cmd2 &
不,我刚刚检查过这是如下
nohup: ignoring input and redirecting stderr to stdout
答案 3 :(得分:0)
您可以在screen
会话中启动管道。按下 Ctrl-a 键,然后按下 d 键,将屏幕会话与终端分离。然后,您可以安全地退出终端机;管道将继续运行。使用screen -r
重新连接到会话。
答案 4 :(得分:0)
您始终可以创建脚本文件并使用nohup运行它:
echo "cmd1 | cmd2" > nohupScript.sh
nohup nohupScript.sh &