LINUX.ORG.RU

kshatdown


0

0

#!/bin/sh

LANG=ru_RU.UTF-8
DCOP=/usr/kde/3.5/bin/dcop

kex()
{
	echo $0
	echo Скрипт вызван недопустимым образом
	exit 1
}


test -z "$1"  && kex

if [ ! -z "$2" ]
then
        case $2 in
        *1*|*2*|*3*|*4*|*5*|*6*|*7*|*8*|*9*)
                SECONDS=$2
                ;;
        *)
                kex
                ;;
        esac
else
        SECONDS=5
fi

case $1 in
        logout)
		KSHUTDOWN="$DCOP --all-users --all-sessions ksmserver default logout 0 0 1"
	;;
	reboot)
		KSHUTDOWN="$DCOP --all-users --all-sessions ksmserver default logout 0 1 1"
		OPERATION=" и перезагружаю машину"
	;;
	halt)
		KSHUTDOWN="$DCOP --all-users --all-sessions ksmserver default logout 0 2 1"
		OPERATION=" и останавливаю машину"
	;;
	*)
		kex
	;;
esac

if [ ! -z "`pidof dcopserver`" ]
then
	wall Закрываю все пользовательские сессии KDE через $SECONDS секунд $OPERATION
	logger Закрываю все пользовательские сессии KDE через $SECONDS секунд $OPERATION
	sleep $SECONDS
	$KSHUTDOWN
else
	case $1 in
        logout)
		echo Нет активных сессий KDE
	;;
	reboot)
		wall Перезагружаю машину через $SECONDS секунд
		test -z "`grep init=/sbin/initng /proc/cmdline`" && reboot || system_off reboot
	;;
	halt)
		wall Перезагружаю машину через $SECONDS секунд
		test -z "`grep init=/sbin/initng /proc/cmdline`" && halt || system_off halt
	;;
	esac
fi

#EOF

установен на Three Finger Salute в inittab, acpid и прочее, чтобы корректно завершать сессию KDE

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.