LINUX.ORG.RU

Корректное завершение сесси Openbox


0

1

Здравствуйте!
Пилю под себя Openbox на облегчённой системе. Встала такая проблема: при выключении компьютера с помощью shutdown -h now или halt некорретно завершается сессия: не сохраняются изменения в настройках незакрытых программ и другие радости. При этом, при выходе из сеанса (openbox --exit) таких проблем нет. Пробовал вешать на выключение скрипт:

openbox --exit && sudo shutdown -h now
но и это не помогло: из сеанса выходит, но не выключается.
Как мне кошерно выключать компьютер?

★★★★★

Я со своим флаксбоксом делаю так - сначала закрываю флаксбокс из меню, потом уже из консоль халтом вырубаю компьютер. Да и включаю я его так же - в консоли логинюсь и при надобности запускаю стартх.

Zhbert ★★★★★
()

Как мне кошерно выключать компьютер?

Закрыть openbox, а потом нажать кнопку на корпусе.

GotF ★★★★★
()
Ответ на: комментарий от fenris

oblogout

Спасибо, попробую.

Axon ★★★★★
() автор топика
Ответ на: комментарий от kernelpanic

sudo halt && openbox --exit

Угу. То есть, оно сначала вырубит комп, а потом завершит сессию. Замечательно!

Axon ★★★★★
() автор топика
Ответ на: комментарий от kernelpanic

А ведь действительно. Что-то я об этом сразу не подумал. Cranchbang собирают идиоты.

А что, у Вас такая команда сначала завершает сессию, а потом выключает комп?

Axon ★★★★★
() автор топика
Ответ на: комментарий от HTaeD

'openbox --exit & sudo shutdown -h now' пробовали?..

Нет ещё. Только мне такая игра наперегонки как-то доверия не внушает...

Axon ★★★★★
() автор топика

У меня выключение так:

dbus-send --system --print-reply --dest="org.freedesktop.Hal"

openbox --exit работает очень аккуратно, так даже многие проги не завершаются (например conky). у меня выход - это kilall -w $USER. это не винда - выключение в лин - по принципу - убийство всех процессов в определенном порядке. я всегда все за собой закрываю, кроме фоновых прог и tilda, который на рабочем столе. проблемы были с tilda (иногда при затирает за собой конфиг при убийтве) - для него я написал скрип, который в при при входе исполняется:

cd ~/.tilda
if [ $(find -name config_0 -empty) == "./config_0" ]; then cp /home/.dfltcfg/config_0 ~/.tilda; fi
cp ~/.tilda/config_0 /home/.dfltcfg/
tilda --command=cd

moscwich
()
Ответ на: комментарий от HTaeD

тогда уж

openbox --exit & sleep 3; sudo shutdown -h now

а лучше

openbox --exit & sleep 3; dbus-send --system --print-reply --dest=«org.freedesktop.Hal»

или хотя бы

openbox --exit & sleep 3; gksudo shutdown -h now

а то как же выходить будите не из консоли если за сессию sudo не использовали?

moscwich
()
Ответ на: комментарий от moscwich

>а то как же выходить будите не из консоли если за сессию sudo не использовали?
Подправлю sudoers.

HTaeD ★★★★
()
Ответ на: комментарий от Axon

В общем так, разобрался я с этим вопросом. У меня корректно работает

openbox --exit && sudo halt
Запускаю я это дело не из консоли, а через вот такую pygtk'шную менюшку. Нарыл в crunchbang'овском блоге и немного поправил и допилил. Самое что интересное, у них было указано
gdm-control --shutdown && openbox --exit
Сдается мне, что это все таки неправильно, ведь команда после && запускается только после выполнения первой команды, а значит openbox --exit не выполняется.

kernelpanic ★★★★★
()
Ответ на: комментарий от kernelpanic

Сдается мне, что это все таки неправильно, ведь команда после && запускается только после выполнения первой команды, а значит openbox --exit не выполняется.

Вот и мне это сдаётся. :-) Поэтому я Вам и возразил.

openbox --exit && sudo halt

Проверю, вдруг у меня тоже сработает... Но openbox --exit && sudo shutdown -h now не сработало.

Axon ★★★★★
() автор топика
Ответ на: комментарий от kernelpanic

openbox --exit && sudo shutdown -h now не срабатывает при вводе в консоль?

Да нет. Я уже писал, собственно, в топике, при вводе этой команды происходит завершение сеанса опенбокса и всё. После этого можно войти обратно и продолжить работу.

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

В принципе, все логично, после выполнения первой части команды эмулятор терминала завершает работу вместе с опенбоксом, и вторая выполняться просто не будет. А вот почему (точнее как) это работает при использовании питона мне действительно интересно.

kernelpanic ★★★★★
()
Ответ на: комментарий от kernelpanic

Можно попробывать так: засунуть скроку openbox --exit && sudo shutdown -h now в файл, пусть halt1.sh сделать его исполняемым создать файл halt.sh с содержимым ./halt1.sh&

swelf
()
Ответ на: комментарий от swelf

Зачем этот изврат? Какой тайный сакральный смысл носит вкладывание одного скрипта в другой?

kernelpanic ★★★★★
()
Ответ на: комментарий от swelf

Можно попробывать так: засунуть скроку openbox --exit && sudo shutdown -h now в файл, пусть halt1.sh сделать его исполняемым создать файл halt.sh с содержимым ./halt1.sh&

В общем-то, примерно так я и делаю. Для удобства настройки засунул эту строку в скрипт, только в конце строки вызова скрипта нет амперсанда. А что он может изменить, этот амперсанд?

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

амперсанд вернет управление терминалу который вызвал команду, в нашем случае скрипту halt.sh, который благополучно завершится, halt1.sh продолжить работать привязанный к терминалу(судя по ps), но если терминал закрыть он так же продолжит работу уже без привязки, и по идеив твоем случае выполнит команду sudo shutdown -h now

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