I thought it would be cool to have an option to hibernate VMs (instead of shutdown) on PVE host reboot. It's especially handy when VMs require manual intervention for startup.
Any thoughts on this?
Any thoughts on this?
# suspend_and_shutdown.sh
qm list | grep running | awk -F'[^0-9]*' '$0=$2' | while read -r vm_id; do qm suspend $vm_id --todisk 1; done; shutdown -h now
# suspend_and_reboot.sh
qm list | grep running | awk -F'[^0-9]*' '$0=$2' | while read -r vm_id; do qm suspend $vm_id --todisk 1; done; reboot
#!/bin/sh
case "$1" in
start)
qm list | awk -F'[^0-9]*' '$0=$2' | while read -r vm_id; do qm unlock $vm_id; done;
;;
stop)
qm list | grep running | awk -F'[^0-9]*' '$0=$2' | while read -r vm_id; do qm suspend $vm_id --todisk 1; done;
sleep 10
;;
esac
exit 0
Any news about this? It's almost 2023...You can hibernate already manually, a general setting to do this on host reboot in already on our internal roadmap.
Will this replace the current/standard Proxmox behavior of shutting down the VMs when doing a reboot? Thank you!Hi,
Here is my solution to hibernate all VMs at reboot or shutdown !
It works for me. Thanks to @davidand for his script example
Go in proxmox shell, you need to be root !
vi /etc/init.d/proxmox
Add this :
Bash:#!/bin/sh case "$1" in start) qm list | awk -F'[^0-9]*' '$0=$2' | while read -r vm_id; do qm unlock $vm_id; done; ;; stop) qm list | grep running | awk -F'[^0-9]*' '$0=$2' | while read -r vm_id; do qm suspend $vm_id --todisk 1; done; sleep 10 ;; esac exit 0
chmod 755 /etc/init.d/proxmox
ln -s /etc/init.d/proxmox /etc/rc3.d/S99proxmox
ln -s /etc/init.d/proxmox /etc/rc0.d/K99proxmox
ln -s /etc/init.d/proxmox /etc/rc6.d/K99proxmox
systemctl daemon-reload
systemctl start proxmox
Don't forget to add autostart option in proxmox to the VMs that have to boot on start.
Enjoy !
You can reboot or shutown your server from :
- Physical buttons
- Proxmox Gui buttons
- in shell : restart now / shutdow now
Hi Lion,Hi,
Here is my solution to hibernate all VMs at reboot or shutdown !
It works for me. Thanks to @davidand for his script example
Go in proxmox shell, you need to be root !
vi /etc/init.d/proxmox
Add this :
Bash:#!/bin/sh case "$1" in start) qm list | awk -F'[^0-9]*' '$0=$2' | while read -r vm_id; do qm unlock $vm_id; done; ;; stop) qm list | grep running | awk -F'[^0-9]*' '$0=$2' | while read -r vm_id; do qm suspend $vm_id --todisk 1; done; sleep 10 ;; esac exit 0
chmod 755 /etc/init.d/proxmox
ln -s /etc/init.d/proxmox /etc/rc3.d/S99proxmox
ln -s /etc/init.d/proxmox /etc/rc0.d/K99proxmox
ln -s /etc/init.d/proxmox /etc/rc6.d/K99proxmox
systemctl daemon-reload
systemctl start proxmox
Don't forget to add autostart option in proxmox to the VMs that have to boot on start.
Enjoy !
You can reboot or shutown your server from :
- Physical buttons
- Proxmox Gui buttons
- in shell : restart now / shutdow now