まあそれはこのようになります。私は私の家からssh
ingによって私の機関のサーバーにプログラムを実行しなければなりませんでした。セッションが閉じるときにプログラムを終了させたくありませんでした(screen
について知りませんでした)。
押したのはCtrl+Z
を入力し、bg
と入力して、バックグラウンドで実行します。セッションは終了しました。今、教育機関のマシンからログインし、ps -u username
、プログラムはまだ実行されているが、フォアグラウンドに戻すことができないことを示しています。
fg
とjobs
を試しましたが、これらのコマンドでは何も出力されません。
誰か助けてください..
「screen」コマンドを使用せずにプロセスを開始した場合、そのプロセスを引き継ぐことはできません。基本的に、異なるシェルで開始されたプロセスを引き継ぐことはできません。
セッションが終了すると、すべてのbgプロセスが切り離された状態になります。そのようなプロセスの詳細を見ることができるかもしれませんが、後でログインからシェルにそれらをfgすることはできません
プロセスが孤立している場合、それを別のシェルに「リペアレント」して、fg、bg、^ Z、^ Cなどを使用して制御することはできません。
孤立したプロセスを制御する方法を暗黙的に尋ねているようです。 psコマンドを使用してプロセスを確認できるため、そのpidがあります。このpidをkillコマンドの引数として使用すると、プロセスを停止、続行、または終了できます。プロセスが終了するのを待つことはできませんが、「kill -0 <pid>」コマンドを使用して、プロセスがまだ存在するかどうかをポーリングすることができます。
https://serverfault.com/questions/55880/moving-an-already-running-process-to-screen
この質問に対する別の見解を示します。一番上の回答は、Reptyrの使用を提案しています。