Руслан Коротаев -> [email protected] @ Fri, 9 Oct 2015 20:02:25 +0500:
>> Решение в виде session-cleanup-script - это костыль. Оно не >> универсально и зависит от конкретного DM. Я ищу правильное решение, >> чтобы приложение могло узнать, что сессия завершается и совершить >> нужные действия. РК> Как вариант, можно попробовать ~/.bash_logout, если используете bash. РК> Предполагается что вы выключаете или перезагружаете комп, заодно РК> подчищаете логи, делаете бекап и так далее. Однако приложение не узнает РК> что сессия завершается, просто выполнит скрипт, но зато не зависимо от РК> конкретного DE/WM. Насколько я понимаю, .bash_logout не запускается, если то была не интерактивная терминальная сессия. Иксовая сессия не является интерактивной терминальной. >> Похоже DE в частности XFCE4 не следит за всеми процессами, которые были >> запущены самой DE. Хотя с другой стороны возможно это и правильно - я >> ведь могу запустить несколько процессов, которые вполне могут жить и >> после завершения сессии. >> >> У меня пробел в знании как вообще работает завершение сессии в DE. Ведь >> при выходе из системы приложения каким-то образом узнают, что сессия >> завершается. Например writer просит сохранить документ при выходе, но >> если ему отправить сигнал TERM, то ничего подобного не происходит. >> >> Возможно DE закрывает все окна в текущей сессии и таким образом >> достигается gracefull exit. РК> Видимо это особенность конкретного DE/WM, у меня xmonad, когда я из него РК> выхожу он меня вообще ни о чем не предупреждает, вываливается в консоль РК> и всё. Writer потом пробует восстановить документ, а вот то что было РК> запущенно в терминале ведет себя по разному, некоторые приложения РК> нормально завершают работу, некоторые демонизируются, то есть это РК> зависит от самого приложения, от того как там реализована обработка РК> сигналов. Это, в общем, одна из разниц между DE и WM. DE подразумевает интеграцию в том числе и на уровне сеанса работы в среде, информирует свои компоненты (и вообще всех, кто понимает) о _намерении_ пользователя завершить сеанс и пытается дождаться ответов. WM ведет себя попроще. Судя по "демонизируются", шлет SIGHUP. Я, если честно, не проверял, как ведет себя xmonad - я обычно закрываю все программы вручную, прежде чем выйти. Я, впрочем, оттуда выхожу только когда собираюсь перезагрузить машинку, раз в несколько месяцев.

