Nohup とリモート シェルでのログアウトと終了の違い

Nohup とリモート シェルでのログアウトと終了の違い

仕事でリモート Linux シェルにアクセスしています。 を使用して、バックグラウンドで Python スクリプトを実行していますnohup

logoutさて、セッションを終了したい場合、 コマンドとコマンドの違いは何でしょうかexit? どちらの場合でもスクリプトは実行され続けますか?

答え1

logoutはシェルの内部コマンドです。したがって、一般的に答えはシェルに依存します。出典man bash:

logout– ログインシェルを終了します。

からman zsh

logout [ n ]– exit と同じですが、ログイン シェルでのみ機能します。

つまり、これらは完全に同じですが、logout は非ログイン シェルでは動作しません。ログイン シェルとは何かについては、マニュアル ページで読むことができます。

答え2

ローカル端末で両方を試してください。「ログアウト」を使用する場合は、「ログイン」する必要があります。端末では、デフォルトではログインでシェルを起動することはないため、端末を閉じる場合は「終了」を使用する必要があります。これは「ログイン シェル」ではありません。

リモート ssh では、「ログイン シェル」を使用しているため、シェルは関係ありません。nohub などを使用する場合は、実際のシェルからコマンドを「切り離す」ため、シェルを閉じてもプロセスは終了しません。

関連情報