Linux: ログアウト、再起動、およびシャットダウンの方法

Linuxで現在のシェルを終了するにはexitを使用し、システムを再起動するにはsudo systemctl rebootを、電源を切るにはsudo systemctl poweroffを使用します。ログアウトは現在のセッションにのみ影響しますが、再起動やシャットダウンはサーバ上の他のユーザーやサービスにも影響します。

実行前に確認

この記事の再起動およびシャットダウンの例は、systemd を使用した Linux を基にしています。すぐに実行されるコマンドは、保存されていない作業や実行中のサービスに影響を与える可能性があるため、作業を保存し、他のユーザーに通知し、保守時間内に実行してください。サーバーでは、バックアップとサービスへの影響を確認してください。

SSH 経由で接続している場合、コマンドはあなたの PC ではなく、接続したサーバー上で実行されます。以下のコマンドは、対象を確認するのに役立ちます。

hostname
date
who

hostnameは現在のホスト名を表示し、dateはサーバーの現在の時刻とタイムゾーンを表示し、whoはログイン記録に表示されるユーザーの一覧を表示します。サーバーを名前だけで完全に特定することはできないため、管理ツールの情報とも照合してください。リモートサーバーは再起動中にSSH接続が切断され、シャットダウン後は直接起動できない場合があるため、事前にコンソールや電源管理ルートを確認してください。

現在のシェルからログアウトする

現在のシェルを終了するには、次のコマンドを実行してください。

exit

SSHセッションの最後のシェルで実行すると、通常リモート接続が閉じられます。ネストされたシェルにいる場合は、まず外側のシェルに戻ってください。logoutはログインシェルを終了する際に使用できますが、通常の非ログインシェルでは動作しない場合があります。ログアウトしてもシステム自体はシャットダウンされず、進行中の作業が続行されるかどうかは、セッションとタスクの設定によります。

すぐに再起動またはシャットダウン

systemdシステムでは、次のコマンドで再起動を要求します。実行と同時にサービスの停止が開始されるため、まずターゲットが正しいか確認してください。

sudo systemctl reboot

システムをシャットダウンして電源を切るには、次のコマンドを使用します。

sudo systemctl poweroff

管理者権限は、環境によって sudo または別の認証が必要な場合があります。仮想マシンやクラウドサーバーの電源状態および再起動方法は、管理プラットフォームのポリシーによって異なる場合があります。再起動後、再接続して必要なサービスが正常に動作しているか確認してください。システムを停止する halt と電源を切る poweroff は同じ意味ではないため、目的に合ったコマンドを選択してください。

再起動やシャットダウンのスケジュール設定とキャンセル

shutdown で操作のスケジュールを設定できます。次のコマンドは、10分後に再起動をスケジュールします。

sudo shutdown -r +10

-rは再起動で、+10は現在時刻から10分後です。10分後に電源を切るには、-Pを使用してください。

sudo shutdown -P +10

HH:MMでは24時間形式で特定の時刻を指定することもできます。例えば、サーバー時間で23:30に再起動をスケジュールするには、次のコマンドを実行します。

sudo shutdown -r 23:30

実行する前に、サーバーの時刻とタイムゾーンを確認し、希望する時刻がまだ過ぎていないか確認してください。実装やバージョンによっては、すでに過ぎた時刻の取り扱いが異なり、すぐにシャットダウンが開始される場合があります。スケジュールされたコマンドを入力するとシステムに影響するため、テストのためだけに本番サーバーで実行しないでください。

まだ開始されていないスケジュールされたシャットダウンをキャンセルするには、次のコマンドを実行します。

sudo shutdown -c

キャンセルは保留中のシステムシャットダウンに適用され、他の管理者が所有している場合があるため、まず確認してください。これは、すでに開始された即時の再起動やシャットダウンを元に戻すコマンドではありません。最近の一部の systemd バージョンでは、shutdown --show を使用して保留中のシャットダウンを確認できますが、バージョンによってはこのオプションがない場合があります。詳細な動作については、システム上の man shutdown と systemd の shutdown ドキュメント を確認してください。

通知のみ送信およびトラブルシューティング

systemd の shutdown -k は、実際にシャットダウンや再起動を行うことなく、ログイン中のユーザーに通知を送信します。例えば、次のコマンドは時間付きのメッセージを送信します。

sudo shutdown -k +10 "Maintenance notice"

通知の受信方法はユーザーセッションやシステム設定によって異なる場合があるため、重要な業務連絡は別のチャネルでも配信する必要があります。-k は実際の予定されたシャットダウンではありません。

  • 権限エラー: sudo 権限とシステムの認証ポリシーを確認してください。
  • コマンドまたはオプションが異なります: 振る舞いはディストリビューションや初期化システムによって異なる場合があるため、man shutdown および man systemctl を確認してください。
  • 再起動後に接続に失敗しました: 十分に待ってから、管理コンソールで電源状態、ネットワーク、SSH、および重要なサービスの状態を確認してください。