为什么“nohup”和“disown”在 SoX 上不起作用(称为“play”)

jwd*_*jwd 4 bash nohup sox disown

我可以运行这个命令:

$ play mylist.m3u
Run Code Online (Sandbox Code Playgroud)

和音乐播放。

然后我可以按 Ctrl-Z 暂停作业,并发出bg让它在后台运行的问题。

但是,如果我然后运行disownexit,即使该play命令仍然显示在ps.

我希望音乐继续播放。

也很有趣

我运行命令

$ play mylist.m3u &
Run Code Online (Sandbox Code Playgroud)

音乐也不会玩。作业显示为stopped状态。

我也可以运行命令

$ nohup play mylist.m3u &
Run Code Online (Sandbox Code Playgroud)

没有音乐播放 - 工作立即停止。

然而,

$ nohup play mylist.m3u
Run Code Online (Sandbox Code Playgroud)

确实有音乐播放,但我不能像以前一样否认它。


似乎所有这些都是相关的。

大多数程序在disowned 或 run through时表现良好nohup,但不是 SoX。

有谁知道为什么?

小智 8

对于像我一样遇到这个问题并最终设法在谷歌上搜索与棒球无关的东西并想要实际解决方案的罕见人:

$ play whatever.wav &>/dev/null </dev/null &
Run Code Online (Sandbox Code Playgroud)

它在后台运行而不会停止。

*红红袜波士顿的比赛棒球,显然有些玩家喜欢出风头的背景。叽。