さらに、「&」記号を使用して、1 つの ssh 接続を介して多くのプロセスを実行し、端末の数を最小限に抑えることができます。たとえば、ファイルを抽出するためにメッセージをリッスンする 1 つのプロセスがあり、2 番目のプロセスはファイルをアップロードするためにメッセージをリッスンします。「&」を使用すると、サーバーへの単一の ssh 接続を介して、1 つのターミナルで両方のサービスを実行できます。 .
「&」を介して実行されるこれらのプロセスは、ssh セッションが閉じられた後も「存続」します。サーバーへの ssh 接続が中断され、ターミナル マルチプレクサ (screen、tmux、byobu) が使用されていない場合に、非常に便利で便利です。
特に指示がない場合、コマンドはフォアグラウンドを引き継ぎます。 1 つのシェル セッションで実行される「フォアグラウンド」プロセスは 1 つだけです。 &記号は、コマンドをバックグラウンド プロセスで実行するように指示し、すぐにコマンド ラインに戻って追加のコマンドを実行します。
sh my_script.sh &
バックグラウンド プロセスはしません シェル セッションが閉じられた後も存続します。 SIGHUP は、実行中のすべてのプロセスを終了します。とにかくデフォルトで。コマンドが長時間実行されるか、無期限に実行される場合 (例:マイクロサービス)、セッションから切断した後もコマンドが実行され続けるように、nohup で pr-pend する必要があります:
nohup sh my_script.sh &
編集: &が使用されている場合、バックグラウンド プロセスの終了に関して灰色の領域があるように見えます。シェルが可能性があることに注意してください。 OS とローカル構成 (特に CENTOS/RHEL の場合) に応じてプロセスを閉じます:https://serverfault.com/a/117157.
&
コマンドをバックグラウンドで実行します。
man bash
から :
コマンドが制御演算子 & によって終了された場合 、シェルはサブシェルでバックグラウンドでコマンドを実行します。シェルはコマンドが終了するのを待たず、戻りステータスは 0 です。