nohup command &
可以在关闭终端后保持命令运行。
我想在 Music
目录中播放所有 mp3 音乐。
ls Music/*mp3 |xargs -d "\n" mplayer
ls Music/*mp3
可以列出目录 Music
中的所有 mp3 文件,通过管道和 xargs 发送,-d "\n"
是为了处理文件名中的空格。
我希望将所有的 stdout
和 stderr
重定向到 /dev/null
,并在后台运行。
ls Music/*mp3 |xargs -d "\n" mplayer > /dev/null 2>&1 &
这个程序目前可以正常工作,但我希望即便关闭终端窗口也能继续运行。
nohup ls Music/*mp3 | xargs -d "\n" mplayer > /dev/null 2>&1 &
ls Music/*mp3 | xargs -d "\n" nohup mplayer > /dev/null 2>&1 &
ls Music/*mp3 | nohup xargs -d "\n" mplayer > /dev/null 2>&1 &
当我关闭终端时,后台运行的进程也会结束。
为什么在以上三个命令中
nohup
不起作用?如何使其生效?disown
可以解决这个问题,但我想使用nohup
来解决。ls Music/*mp3 | xargs -d "\n" mplayer > /dev/null 2>&1 & disown
xargs
之前加上nohup
,因为当终端关闭时,是xargs
接收到HUP
信号。 - andreossxargs
前加上nohup
是无效的。 - showkey