[РЕШЕНО]Как перезагружаться и выключать систему, что бы нормально завершались процессы?

в общем, интересует, как выключаться и перезагружаться, что бы программы которые я запускал завершались не экстренно, а нормально?

допустим, отключаю
shutdown -h now
, запускаю комп, запускается хромиум, с предложением восстановить последнюю сессию...
получается чо хромиум завершился аварийно?
при завершении хромиума через
killall -2 chromium
и его последующим запуском все нормально (запускается сессия и все вкладки как и должно быть)

РЕШЕНИЕ:
в общем из всего услышанного здесь, собрал пару скриптов на reboot и poweroff
использовался ентот пост.

думаю кому-то пригодятся примеры
systemctl poweroff
systemctl reboot
https://github.com/warlock90000/awesome
warlock9000
systemctl poweroff
systemctl reboot
systemd-sysvcompat однако...
Но на сабж не влияет. Только закрывать приложения руками или средствами WM. Даже xkill просто убивает, а не завершает процесс.
safocl
чтобы программы, которые я запускал, завершались не экстренно, а нормально?
while wmctrl -c LibreOffice
do
  sleep 1
done
killall oosplash -TERM
Оно?
А ещё бывают специальные вызовы для конкретных программ, типа
for VM in `VBoxManage list runningvms | cut -d " " -f 2`
do
  echo $VM
 [code]
VBoxManage controlvm $VM savestate
done

Это всё цитаты из моего реального скрипта, который вызывается перед завершением собственно системы.
akorop
while wmctrl -c LibreOffice
у меня нету ентого
wmctrl
... и чо он ваще делает?
warlock9000
systemctl poweroff
systemctl reboot
нипамагает, хромиум все равно грит чо сессия была завершена пичально и предлагает ее восстановить
Aivar
Только закрывать приложения руками или средствами WM
так основной вопрос и есть в том чо бы ручками не закрывать, а чо бы система закрывала сама
safocl, я понимаю о чем речь. Более того, это уже обсуждалось и к консенсусу так и не пришли. У меня перед выключением/перезагрузкой выполняется функция:
killx() {
for i in `xlsclients -l | sed -e 's/://' -ne 's/Window //p'`; do
xkill -id $i
done
sleep 1
}
но это вопрос не снимает, т.к. клиент все же убивается, а не закрывается. В идеале надо вносить изменения: передавать фокус клиенту, затем закрывать средствами WM::
i3-msg kill
Признаться, мне влом сейчас этим заниматься, есть вещи поинтереснее. )
"закрывать средствами WM" - этот как раз и есть wmctrl -c.
akorop
"закрывать средствами WM" - этот как раз и есть wmctrl -c.
Попробовал, хромиум не ругается. Тогда так:
IFS=$'\n'
for i in `wmctrl -l | tr -s \  | cut -d \  -f 4-`; do
wmctrl -c "$i"
done
Потестим... Пока все в норме.
 
Зарегистрироваться или войдите чтобы оставить сообщение.