web-dev-qa-db-ja.com

孤立したバックグラウンドプロセスをフォアグラウンドに戻す方法

まあそれはこのようになります。私は私の家からsshingによって私の機関のサーバーにプログラムを実行しなければなりませんでした。セッションが閉じるときにプログラムを終了させたくありませんでした(screenについて知りませんでした)。

押したのはCtrl+Zを入力し、bgと入力して、バックグラウンドで実行します。セッションは終了しました。今、教育機関のマシンからログインし、ps -u username、プログラムはまだ実行されているが、フォアグラウンドに戻すことができないことを示しています。

fgjobsを試しましたが、これらのコマンドでは何も出力されません。
誰か助けてください..

28
Rudra Murthy

「screen」コマンドを使用せずにプロセスを開始した場合、そのプロセスを引き継ぐことはできません。基本的に、異なるシェルで開始されたプロセスを引き継ぐことはできません。

セッションが終了すると、すべてのbgプロセスが切り離された状態になります。そのようなプロセスの詳細を見ることができるかもしれませんが、後でログインからシェルにそれらをfgすることはできません

22
knightrider

プロセスが孤立している場合、それを別のシェルに「リペアレント」して、fg、bg、^ Z、^ Cなどを使用して制御することはできません。

孤立したプロセスを制御する方法を暗黙的に尋ねているようです。 psコマンドを使用してプロセスを確認できるため、そのpidがあります。このpidをkillコマンドの引数として使用すると、プロセスを停止、続行、または終了できます。プロセスが終了するのを待つことはできませんが、「kill -0 <pid>」コマンドを使用して、プロセスがまだ存在するかどうかをポーリングすることができます。

9
Stuart Marks

https://serverfault.com/questions/55880/moving-an-already-running-process-to-screen

この質問に対する別の見解を示します。一番上の回答は、Reptyrの使用を提案しています。

5
chim