diff --git a/packages/mediacenter/xbmc/init.d/93_xbmc b/packages/mediacenter/xbmc/init.d/93_xbmc index 164310c603..df8f7d9d05 100644 --- a/packages/mediacenter/xbmc/init.d/93_xbmc +++ b/packages/mediacenter/xbmc/init.d/93_xbmc @@ -78,18 +78,21 @@ fi 0) if [ ! $(pidof console-kit-daemon) ]; then touch "$LOCKDIR/$LOCKFILE" + _safe_shutdown poweroff -f fi ;; 64) if [ ! $(pidof console-kit-daemon) ]; then touch "$LOCKDIR/$LOCKFILE" + _safe_shutdown poweroff -f fi ;; 66) if [ ! $(pidof console-kit-daemon) ]; then touch "$LOCKDIR/$LOCKFILE" + _safe_shutdown reboot fi ;; diff --git a/packages/sysutils/ConsoleKit/scripts/ck-system-restart b/packages/sysutils/ConsoleKit/scripts/ck-system-restart index 99bb297019..ff2001be08 100755 --- a/packages/sysutils/ConsoleKit/scripts/ck-system-restart +++ b/packages/sysutils/ConsoleKit/scripts/ck-system-restart @@ -20,17 +20,12 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ +. /etc/profile.d/safe-shutdown.conf + LOCKDIR="/var/lock/" LOCKFILE="xbmc.disabled" touch "$LOCKDIR/$LOCKFILE" wait_on_xbmc_exit killall sshd -killall5 -15 -for seq in `seq 1 10` ; do - usleep 500000 - clear > /dev/tty1 - killall5 -18 || break -done -sync -umount -a >/dev/null 2>&1 +_safe_shutdown reboot diff --git a/packages/sysutils/ConsoleKit/scripts/ck-system-stop b/packages/sysutils/ConsoleKit/scripts/ck-system-stop index 0073acaa7c..d729536d6c 100755 --- a/packages/sysutils/ConsoleKit/scripts/ck-system-stop +++ b/packages/sysutils/ConsoleKit/scripts/ck-system-stop @@ -20,17 +20,12 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ +. /etc/profile.d/safe-shutdown.conf + LOCKDIR="/var/lock/" LOCKFILE="xbmc.disabled" touch "$LOCKDIR/$LOCKFILE" wait_on_xbmc_exit killall sshd -killall5 -15 -for seq in `seq 1 10` ; do - usleep 500000 - clear > /dev/tty1 - killall5 -18 || break -done -sync -umount -a >/dev/null 2>&1 +_safe_shutdown poweroff diff --git a/packages/sysutils/busybox/profile.d/safe-shutdown.conf b/packages/sysutils/busybox/profile.d/safe-shutdown.conf new file mode 100644 index 0000000000..69710d03a5 --- /dev/null +++ b/packages/sysutils/busybox/profile.d/safe-shutdown.conf @@ -0,0 +1,41 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ +# Core (PATH) environment variables. +# +# This file contains non-OpenELEC evironment variables as well as OpenELEC +# evironment variables that are not user defined. +################################################################################ + + add_omit_pids() { + omit_pids+=( $@ ) + } + + _safe_shutdown () { + add_omit_pids $(pidof connmand) + add_omit_pids $(pidof dbus-daemon) + killall5 -15 ${omit_pids[@]/#/-o } + for seq in `seq 1 10` ; do + usleep 500000 + clear > /dev/tty1 + killall5 -18 ${omit_pids[@]/#/-o } || break + done + sync + umount -a >/dev/null 2>&1 + }