Eu encontrei uma solução:
Eu simplesmente precisava usar "killall -u" ao invés da "skill -KILL -u". :) Como indicado aqui: link , o comando "skill" parece ser obsoletos e outros como pkill e killall devem ser usados em seu lugar. pkill não fez o que eu quero, mas killall fez. :)
Então aqui está a solução completa:
1) Crie um script /etc/init.d/killusers contendo o seguinte:
#!/bin/bash
#
# chkconfig: 35 90 12
# description: Foo server
#
# Get function from functions library
#. /etc/init.d/functions
. /lib/lsb/init-functions
# Start the service FOO
start() {
#initlog -c "echo -n Starting FOO server: "
#who | cut -d " " -f1 | uniq | xargs killall -u
#who | cut -d " " -f1 | uniq | xargs skill -KILL -u
#success $"FOO server startup"
echo "Do nothing"
}
# Restart the service FOO
stop() {
#initlog -c "echo -n Stopping FOO server: "
who | cut -d " " -f1 | uniq | xargs killall -u
#who | cut -d " " -f1 | uniq | xargs skill -KILL -u
#who | cut -d " " -f1 | uniq | xargs pkill -STOP -u
}
### main logic ###
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status FOO
;;
restart|reload|condrestart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit 0
(script baseado em link )
2) Torne-o executável:
sudo chmod +x /etc/init.d/killusers
3) Adicione aos scripts de desligamento:
sudo update-rc.d killusers defaults
Nota 1: Eu acho que o nível de execução 6 deve ser suficiente, mas eu fui para os padrões apenas para ter certeza. O script provavelmente também conteria apenas o comando kill se fosse executado durante o desligamento.
Nota 2: Para salvar o histórico bash imediatamente, você pode usar (graças ao HampusLi):
history -a
Você também pode simplesmente executar:
history -a && sudo reboot
Mas eu queria que funcionasse para qualquer usuário e sem precisar criar um alias, script ou similar.