次のコマンドを実行できます。
$ play mylist.m3u
音楽が始まります。
その後、Ctrl-Z を押してジョブを一時停止し、コマンドを実行してbg
バックグラウンドで実行できるようにします。
ただし、実行しdisown
てexit
音楽の再生を停止すると、play
コマンドが表示され続けるのにも同じですps
。
音楽が流れ続けてほしいです。
また非常に興味深い
私はコマンドを実行します
$ play mylist.m3u &
果たして音楽いいえ遊ぶ。ジョブがステータスstopped
として表示されます。
コマンドを実行することもできます。
$ nohup play mylist.m3u &
そして音楽は再生されません。ジョブはすぐに停止します。
しかし、
$ nohup play mylist.m3u
実際に音楽が再生されていましたが、以前のように否定することはできませんでした。
これらすべてが関連しているようです。
ほとんどのプログラムはdisown
edまたはRuntimeではうまく機能しますnohup
が、SoXではうまく機能しません。
理由を知っている人はいますか?
答え1
私のように、この問題に直面して、最終的に野球に関連していないものをGoogleで検索し、実際の解決策を望む珍しい人のために:
$ play whatever.wav &>/dev/null </dev/null &
停止せずにバックグラウンドで実行されます。
*この赤レッドソックスボストン遊ぶ野球では、一部の選手は注目されるよりも注目されることを好むようです。背景。あいまいだ。
答え2
SoXは入力と出力を必要とします...コンソールに「play xxxx」と入力して正常に実行でき、stdinとstdout(およびstderr)の両方が接続されます。
ジョブをバックグラウンドに配置すると(&使用)、ジョブが開始されてからstdinとstdoutへのアクセスを待っているため、一時停止します。
ジョブを「nohup」しても同じことが起こります。キーボード入力が必要な場合は、標準入力にアクセスするまでシステムによって「ブロック」され、一時停止されます。
プロセスを拒否すると、プロセスを開始したコンソールに接続されている標準入力と標準出力からそのプロセスが効果的にブロックされます。
それでも「実行中」ですが、標準入力と標準出力へのアクセスを待っているため、システムによってブロック(一時停止)されます。
答え3
-qオプションを使用すると、SoXが/ dev / nullにリダイレクトせずにstd-whatに書き込まないようにすることもできます。
$ play filename -q &