
仕事でリモート Linux シェルにアクセスしています。 を使用して、バックグラウンドで Python スクリプトを実行していますnohup
。
logout
さて、セッションを終了したい場合、 コマンドとコマンドの違いは何でしょうかexit
? どちらの場合でもスクリプトは実行され続けますか?
答え1
logout
はシェルの内部コマンドです。したがって、一般的に答えはシェルに依存します。出典man bash
:
logout
– ログインシェルを終了します。
からman zsh
:
logout [ n ]
– exit と同じですが、ログイン シェルでのみ機能します。
つまり、これらは完全に同じですが、logout は非ログイン シェルでは動作しません。ログイン シェルとは何かについては、マニュアル ページで読むことができます。
答え2
ローカル端末で両方を試してください。「ログアウト」を使用する場合は、「ログイン」する必要があります。端末では、デフォルトではログインでシェルを起動することはないため、端末を閉じる場合は「終了」を使用する必要があります。これは「ログイン シェル」ではありません。
リモート ssh では、「ログイン シェル」を使用しているため、シェルは関係ありません。nohub などを使用する場合は、実際のシェルからコマンドを「切り離す」ため、シェルを閉じてもプロセスは終了しません。