Will "init 1" from a remote (via VPN) ssh session kill my ssh connection
Solution 1:
Yes, yes it will. Most services don't run in runlevel 1.
Solution 2:
It should be OK. Whilst the SSH listener daemon is stopped in runlevel 1 on most distros, existing connections should stay up, and networking shouldn't be affected. I wouldn't be doing it without having some sort of remote console connected, though -- you never know when a rogue solar flare is going to come along and drop your network connections for juuuuust long enough to kill your SSH session.
EDIT: Some testing indicates that, on Debian systems at least, /etc/rc1.d/S30killprocs
will take down existing SSH connections (because it's killing off everything). I would be inclined to knobble that script temporarily and do it's job by hand (avoiding the SSH connections) if I were to try to do what you want to do. I'd still prefer to use a remote console, though.
Solution 3:
Sorry to bring up after such a long time. I needed answer to this same question. Current answers are wrong for my box. My findings are for Centos 5.11 based install.
The reason ssh client gets disconnected is because
init 1
does something likeservice network stop
. What I observe is that and all network interfaces go down and get unconfigured.ip a
andifconfig -a
confirm this.init 1
stopssshd
listener process. It does not stopsshd
child process that holds the session for the connected client. The ssh session eventually gets dropped due to TCP timeout because network goes down, ssh session does not get killed. If I bring the network back upservice network start
at the console quickly enough then my clients remain connected even though the box is at runlevel 1.Question mentions VPN. If the VPN server you are going though is on the box where you doing
init 1
then yes, you normally will get disconnected because VPN server by default will NOT run at runlevel 1.
My work around to take system to runlevel 1 without losing ssh sessions, is to temporarily configure required services to continue running at run level 1. All based on Centos 5.11. YMMV. Disclaimer: I would not want to rely on this to work.
# 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
That's it. This allows me to take box to init 1 remotely while remaining in control.
After you are done don't forget to undo the changes:
chkconfig --level 1 network off
chkconfig --level 1 openvpn off
chkconfig --level 1 sshd off