AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Logout all remote sessions before reboot/poweroff.

Библиотека 2 сообщений -
#1

Logout all remote sessions before reboot/poweroff.


Всем кто не хочет больше ждать когда консоль отвиснет по таймауту после каждой команды ребута на серверах посвящается.

Ubuntu:
nano /etc/init.d/logoutssh
Код:
#!/bin/sh

case "$1" in
start)
# nothing, just to keep update-rc.d happy (see debian #630732)
;;
stop)
echo "Log out all remote ssh sessions before system down... "
who | cut -d " " -f1 | uniq | xargs skill -KILL -u
;;
restart|force-reload)
# nothing
;;
status)
exit 0
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
exit 1
;;
esac

exit 0


chmod +x /etc/init.d/logoutssh
ln -s /etc/init.d/logoutssh /etc/rc0.d/K10logoutssh
ln -s /etc/init.d/logoutssh /etc/rc6.d/K10logoutssh

++++++++++++++++++++++++++++

Gentoo:
Код:
echo 'who | cut -d " " -f1 | uniq | xargs skill -KILL -u' >> /etc/local.d/logoutssh.stop && chmod +x /etc/local.d/logoutssh.stop


ps: уверен будет работать и в других дистрах. сама "магическая последовательность" была выдрана мной из дебиана много лет назад и успешно использовалась долгие годы в генту, вот понадобилось адаптировать под убунту, результатами рад поделиться с вами. работало кстати и на OpenWRT.
#2

у кого перестало работать - новый вариант (из-за избавления в дистрах от skill и перехода на pkill)
Цитата:
who | cut -d " " -f1 | uniq | xargs killall -u