forked from pool/systemd
8f6010ffdf
- Change patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch to skip already by the kernel managed devices - fix timeout stopping user@.service (bnc#841544) * 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch * 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch * 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch - Add patch 0001-upstream-systemctl-halt-reboot-error-handling.patch to be able to detect if the sysctl reboot() returns. - Add patch 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch A check for unmaintained disk like devices is added to be able to flush and maybe shut them down. Also the missing sync() system call is added for the direct halt/reboot systemctl command. Then the system halt is used as fallback if poweroff fails for both the direct poweroff systemctl command as well as for the systemd-shutdown utility. - Make systemd-mini build - Make requires bash-completion a recommends - Add patch 1017-skip-native-unit-handling-if-sysv-already-handled.patch to avoid that enabled boot scripts will be handled as unit files by systemctl status command (bnc#818044) - Drop patch 1017-enforce-sufficient-shutdown-warnings.patch as the original code behaves exactly as the shutdown code of the old SysVinit (bnc#750845) - Rename support-powerfail-with-powerstatus.patch to OBS-URL: https://build.opensuse.org/request/show/215598 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=173
29 lines
771 B
Bash
29 lines
771 B
Bash
#!/bin/bash
|
|
#
|
|
# /usr/lib/systemd/systemd-powerfail
|
|
#
|
|
# Copyright (c) 2014 SUSE LINUX Products GmbH, Germany.
|
|
# Author: Werner Fink
|
|
# Please send feedback to http://www.suse.de/feedback
|
|
#
|
|
# Description:
|
|
#
|
|
# Used to evaluate the status of /var/run/powerstatus
|
|
#
|
|
|
|
trap "echo" SIGINT SIGSEGV SIGTERM
|
|
|
|
POWERFAIL='THE POWER IS FAILED! SYSTEM GOING DOWN! PLEASE LOG OFF NOW!'
|
|
POWERFAILNOW='THE POWER IS FAILED! LOW BATTERY - EMERGENCY SYSTEM SHUTDOWN!'
|
|
POWERISBACK='THE POWER IS BACK'
|
|
|
|
typeset pwrstat=0
|
|
test -s /var/run/powerstatus && read pwrstat < /var/run/powerstatus
|
|
rm -f /var/run/powerstatus
|
|
|
|
case "$pwrstat" in
|
|
O*) exec /sbin/shutdown -c +0 "$POWERISBACK" ;;
|
|
L*) exec /sbin/shutdown -P +0 "$POWERFAILNOW" ;;
|
|
*) exec /sbin/shutdown -P +2 "$POWERFAIL" ;;
|
|
esac
|