TL;DR:
Don’t use
halt
, usepoweroff
instead.
A while ago I wrote about OpenSuSE 12.x not halting after a halt:
- openSUSE 12.x: “A plain `halt` will not shutdown the system properly.”
- openSUSE 12.x: today the same system would not plain “reboot” either (was: “A plain `halt` will not shutdown)
The same holds for more recent OpenSuSE systems, but ESXi would never tell what was going on.
Recently I installed an OpenSuSE Tumbleweed system under VMware Fusion (running on Mac OS X) which indicated “The CPU has been disabled by the guest operating system.”
Which — Understanding the message: The CPU has been disabled by the guest operating system (2000542) | VMware KB [WayBack] — means that halt
will not power down the VM but perform a CLI + HLT on the CPU. This effectively hangs the CPU even though the console log on the right tells does a real Shutdown.
In the past – even under ESXi – a halt
would just power down the system, so based on the above I did more digging and fount this very interesting answer in rhel – What is the difference between these commands for bringing down a Linux server? – Unix & Linux Stack Exchange [WayBack] which comes down to:
- on a systemd [WayBack] based system commands like
halt
,reboot
,shutdown
all invoke systemctl [WayBack] calling for a specific target [WayBack]. - mapping of targets and commands is as follows (quoted from the answer):
systemctl isolate halt.target
has the shorthands:shutdown -H now
systemctl halt
- plain unadorned
halt
systemctl isolate reboot.target
has the shorthands:shutdown -r now
telinit 6
systemctl reboot
- plain unadorned
reboot
systemctl isolate poweroff.target
has the shorthands:shutdown -P now
telinit 0
shutdown now
systemctl poweroff
- plain unadorned
poweroff
systemctl isolate rescue.target
has the shorthands:telinit 1
systemctl rescue
systemctl isolate multi-user.target
has the shorthands:telinit 2
telinit 3
telinit 4
systemctl isolate graphical.target
has the shorthand:telinit 5
For a SysV [WayBack] init runlevels versus systemd targets see:
- 8.3. Working with systemd Targets [WayBack]
- SysVinit to Systemd Cheatsheet – FedoraProject [WayBack]
The systemd parameters making things a bit confusing, for instance you can do reboot --halt
and more of those shown in linux – Are there any good reasons for halting system without cutting power? – Super User [WayBack].
That also explains that halt
without a powerdown can be useful: it for instance gives the end-user the opportunity to click the reset button instead of the power button after a halt.
–jeroen
Filed under: *nix, Linux, openSuSE, Power User, SuSE Linux, systemd, SysVinit, Tumbleweed
