
リモート サーバーに接続し、次のようなコマンドを実行します。
cat /dev/zero > /dev/null & disown %-
その後、 を実行しlogout
て再接続すると、実行中のプロセスps
が表示されません。なぜでしょうか?cat
答え1
このコマンドは私の環境では動作します。多くのリソースを消費するようです。次の方法を試してみてください:
sleep 999 & disown %-
ps aux | grep sleep
代わりに再ログイン後にを実行します。
ただし、プロセスを開始する前にそのプロセスを放棄する必要がある場合は、nohup を使用することもできます。
nohup sleep 999
答え2
「現在の」(最近バックグラウンドになった)ジョブには%%
またはを使用します。は%+
%-
前のjob は、2 番目に最近停止またはバックグラウンド化されたジョブです。ジョブが 1 つしかない場合は、同じ意味になります。ただし、シェル セッションまたはスクリプトの前の部分でバックグラウンド ジョブを実行したままにしていた場合、使用している方法は、%-
想定しているジョブを対象としていない可能性があります。