タイトルがすべてを物語っています。しかし、ここにシナリオがあります:
「init1」を介して「シングルユーザーモード」に移行すると、root sshセッションが強制終了されて切断されますか?
はい、そうです。ほとんどのサービスはランレベル1では実行されません。
大丈夫なはずです。 SSHリスナーデーモンはほとんどのディストリビューションのランレベル1で停止しますが、既存の接続はアップしたままであり、ネットワークは影響を受けません。ただし、何らかのリモートコンソールを接続しないと、それを行うことはできません。不正な太陽フレアがいつ発生し、SSHセッションを強制終了するのに十分な時間ネットワーク接続が切断されるかはわかりません。
[〜#〜] edit [〜#〜]:いくつかのテストでは、少なくともDebianシステムでは/etc/rc1.d/S30killprocs
は既存のSSH接続を停止します(すべてが切断されるため)。私がやりたいことをやろうとすると、そのスクリプトを一時的にこすり、手作業で(SSH接続を避けて)実行する傾向があります。ただし、リモートコンソールを使用したいのですが。
久しぶりに育ててごめんなさい。私はこれと同じ質問に答える必要がありました。私の箱の現在の答えは間違っています。私の調査結果は、Centos5.11ベースのインストールに関するものです。
Sshクライアントが切断される理由は、init 1
がservice network stop
のようなことをするためです。私が観察しているのは、すべてのネットワークインターフェイスがダウンし、構成が解除されることです。 ip a
とifconfig -a
はこれを確認します。
init 1
はsshd
リスナープロセスを停止します。接続されたクライアントのセッションを保持するsshd
子プロセスは停止しません。ネットワークがダウンしたためにセッションがドロップされ、強制終了されません。コンソールでネットワークをservice network start
にすばやく戻すと、ボックスがランレベル1であっても、クライアントは接続されたままになります。
質問はVPNについて言及しています。あなたが行っているVPNサーバーがinit 1
を実行しているボックスにある場合は、はい、VPNサーバーデフォルトはランレベル1で実行されないため、通常は切断されます。
Sshセッションを失うことなくシステムをランレベル1にするための私の回避策は、実行レベル1で実行を継続するために必要なサービスを一時的に構成することです。すべてCentos5.11に基づいています。 YMMV。 免責事項:これが機能することに依存したくありません。
# keep network interfaces up
chkconfig --level 1 network on
# if you are connecting though VPN e.g. OpenVPN running on same server
chkconfig --level 1 openvpn on
# While at it, might as well keep SSHD running, so you can reconnect
chkconfig --level 1 sshd on
init 1
# look for messages that indicate that run level has been reached
tail -F /var/log/messages
# Aug 31 14:21:19 pabx-demo kernel: Kernel logging (proc) stopped.
# Aug 31 14:21:19 pabx-demo kernel: Kernel log daemon terminating.
# Aug 31 14:21:20 pabx-demo exiting on signal 15
それでおしまい。これにより、制御を維持しながら、boxを使用してリモートで1を初期化できます。
完了したら、変更を元に戻すことを忘れないでください。
chkconfig --level 1 network off
chkconfig --level 1 openvpn off
chkconfig --level 1 sshd off