Linuxからログアウトするだけなら exit か logout、キーボードなら Ctrl+D で終わりです。しかし現場で本当に困るのは「SSHを切ったら実行中のコマンドまで止まってしまった」というほう。この記事では、ログアウトの正しい終わらせ方から、SSHを切断してもジョブを走らせ続ける実務ワザまでを、コピペで動く形でまとめます。
まず結論:ログアウトの3つの終わらせ方
exit # どのシェルでも使える。最も無難
logout # ログインシェル専用(後述の注意あり)
Ctrl + D # 入力が空のときにEOFを送ってセッション終了
迷ったら exit を使えば間違いありません。logout はログインシェルでのみ有効で、後述の落とし穴があります。Ctrl+D は「入力欄が空のとき」だけセッションを閉じる合図なので、コマンドを打ちかけているときに押しても効きません。
「logout: not login shell」と怒られたときの判断
bash を手動で起動した中や su で入ったサブシェルでは、logout は次のように弾かれます。
$ logout
bash: logout: not login shell: use `exit'
これはエラーというより「そのシェルはログインシェルではないので exit を使え」という案内です。ログインシェルかどうかを気にせず一律で exit を使うのが、現場では一番迷いません。ネストしたシェルを一段ずつ抜けたいときも exit を繰り返します。
本題:SSHを切っても処理を止めたくない
長時間かかるビルドやバックアップをSSH越しに流しているとき、うっかり回線が切れると処理ごと死んでしまう——これは、切断時にシェルが子プロセスへ SIGHUP(ハングアップ信号)を送るためです。ある運用現場では、10時間かかる移行スクリプトを直叩きで流し、深夜に回線が切れて最初からやり直しになった、という笑えない話も聞きます。回避する手は3つ。状況で使い分けます。
① これから流すなら nohup(お手軽)
# SIGHUPを無視させ、ログをファイルに逃がしてバックグラウンド実行
nohup ./long_job.sh > job.log 2>&1 &
# 進捗はログを追いかければ見える
tail -f job.log
末尾の & でバックグラウンド化し、> job.log 2>&1 で標準出力とエラーを1つのログに落とします。これでSSHを切っても処理は生き残ります。ワンショットの重い処理に向いた最小構成です。
② もう起動してしまったジョブは disown(後追い救済)
Ctrl + Z # 実行中の処理を一時停止
bg # バックグラウンドで再開
disown -h %1 # ジョブ1をSIGHUP対象から外す
「nohup を付け忘れて走らせてしまった」ときの救済策です。Ctrl+Z で止めて bg で裏に回し、disown -h で切断信号の対象から外せば、そのまま切っても生き残ります。jobs でジョブ番号を確認してから指定するのが安全です。
③ 作業を丸ごと残すなら tmux / screen(推奨)
# 未導入なら入れる(Debian/Ubuntu系)
sudo apt install -y tmux
tmux new -s work # 「work」という名前でセッション開始
# …ここで好きなだけ作業…
Ctrl + b → d # デタッチ(セッションは裏で生き続ける)
# 別の日・別の端末から戻る
tmux attach -t work
単一コマンドではなく「作業環境ごと」切り離して残せるのが tmux(や screen)の強みです。複数ウィンドウ・複数ペインをそのまま維持できるため、途中まで打ったコマンドや vi の編集状態も失いません。断続的に触るサーバー作業は、最初から tmux の中で始めるのが安全です。
どれを使うか(判断の早見)
- これから重い処理を1本流す →
nohup … & - 付け忘れて走らせた処理を今すぐ守りたい →
Ctrl+Z→bg→disown -h - 作業環境ごと残して後で再開したい →
tmux/screen(迷ったらこれ)
セッションを安全に終える前の3点確認
jobs -l # 生きているバックグラウンドジョブが無いか確認
history -a # コマンド履歴をその場でファイルへ書き出す
clear # 画面に残った情報を消してからログアウト
共有サーバーでは、jobs で放置ジョブが無いかを確認してからログアウトすると事故が減ります。複数端末を開いていると履歴が最後に閉じた端末で上書きされることがあるため、history -a でこまめに書き出しておくと安心です。
まとめ
ログアウトは exit を基本に、キーなら Ctrl+D。本当の勘所は「切断後も処理を生かす」ほうで、これから流すなら nohup、付け忘れたら disown、環境ごと残すなら tmux と覚えておけば、リモート作業でやり直しに泣くことはなくなります。
「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。
ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。
>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)
※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。

コメント