GNU/Linux >> Linux の 問題 >  >> Linux

以前のシェルからバックグラウンドジョブを回復する方法は??

この質問にはすでに回答があります :8年前に閉鎖。

重複の可能性:
実行中のプロセスの所有権を剥奪し、それを新しいスクリーンシェルに関連付けるにはどうすればよいですか?

長時間続くコマンドを起動しました。
切断する必要があったため、バックグラウンドで移動しました(CTRL+Zとbgを使用) )終了する前に。

このようなもの:

$ my_command
***command is beeing executed and is taking a long time***
^Z
[1]+  Stopped                 my_command
$ bg
[1]+ my_command &
$ exit

再接続してプロセスリストにコマンドが表示されますが、fgで回復できません 。

$ fg
-bash: fg: current: no such job

フォアグラウンドで仕事を回復するにはどうすればよいですか?

承認された回答:

すでにどこかで何かを開始し、バックグラウンドで処理し、新しい端末に接続する必要がある場合は、reptyrを使用できます。 再度取り付けます。 (man このページでは、コマンドを「実行中のプログラムを新しい端末に再ペアレント化する」と要約しています。)

「jobs」コマンドで表示できない、または「fg」を使用して前面に表示できないのは、これらのコマンドが実際にはシェルに組み込まれているためです。接続している端末からプロセスを技術的に切り離すことはないため、シェルを終了するときに 同様に終了します(終了しようとすると警告が表示されます)。


Linux
  1. シェルのコマンド出力から最初/最後の「n」行を削除するにはどうすればよいですか?

  2. コマンドの出力をシェル変数に割り当てる方法は?

  3. PHPからシェルコマンドが存在するかどうかを確認する方法

  1. adbシェルでsuコマンドを使用するには?

  2. laravelコントローラーから外部シェルコマンドを実行するには?

  3. シェルから Vim コマンドを実行するには?

  1. シェルがSshから制御されているかどうかを検出する方法は?

  2. シェルコマンド出力からすべてのSlurmジョブをキャンセルする最良の方法は?

  3. シェルからPythonスクリプトを実行する方法