Целая ночь за курением гугла и стало понятно, зачем нужен консолькит. Вывод: мне ненужен :-} А началось всё с того, что перезагрузка с помощью косолькита, скриптом
нифига не решало проблемы, которые, как мне почему-то казалось, должно было решить. А именно — мягкое выключение всех программ и уже потом ребут. Однако, как выяснилось, консолькит и полкит вовсе не для этого, а для, внимание, регулирования прав пользования и обеспечения независимой работы пользовательских сессий. То есть, чтобы обычный пользователь мог перезагружать и выключать компьютер, чтобы за мультипользовательским компьютером флешки виделись, читались и записывались тем пользователем, который их монтировал... По крайней мере, именно такой вывод сформировался у меня после вдумчивого чтения довольно невнятной документации, а также форумов и блогов по запросу «What consolekit for?». Для однопользовательского десктопа польза этих прослоек стремится к нулю. Мочим.
Собственно, консолькит в арче уже выпилили, он остался в ауре в виде пакета consolekit-git, и от него уже ничего не зависит, можно просто удалить. А policykit перевели в модуль, или какеготам, юнит системд polkitd. У меня вместо него поставлен из аура пакет polkit-consolekit, который и предоставляет полисикитную функциональность. Так как у меня нет DE, то пакетов, зависящих от этого полкита, весьма немного. Пока я его не трогаю, но постараюсь постепенно отучить эти пакеты от polkit'а и удалить его, если, конечно, не всплывёт где-нибудь, что на самом деле он аццки необходим и практически на нём всё держится...
Дальше, убиваем менеджер сессий консолькит из автозагрузки. Раньше openbox стартовал через строчку в ~/.xinitrc
, теперь ck-launch-session можно нафинг убрать.
Теперь самое интересное, ради чего всё и затевалось — мягкая перезагрузка. На самом деле, теоретически, при программной перезагрузке sudo reboot всем работающим программам рассылается сигнал SIGTERM, который, теоретически, позволяет программам закрыться мягко и своими силами. Но к конкретном случае есть два «но»: первое, не все программы правильно обрабатывают SIGTERM (например, Total Commander под wine :-), и второе, openbox при получении SIGTERM рассылает SIGKILL всем дочерним процессам. Поэтому быстрый поиск в гугле — после пары часов пиления своего велосипеда ;-} — подсказал готовое решение здесь.
Под кат скопирую тот пост на всякий случай:
Теперь всё спокойненько завершается и перезагружается.
нифига не решало проблемы, которые, как мне почему-то казалось, должно было решить. А именно — мягкое выключение всех программ и уже потом ребут. Однако, как выяснилось, консолькит и полкит вовсе не для этого, а для, внимание, регулирования прав пользования и обеспечения независимой работы пользовательских сессий. То есть, чтобы обычный пользователь мог перезагружать и выключать компьютер, чтобы за мультипользовательским компьютером флешки виделись, читались и записывались тем пользователем, который их монтировал... По крайней мере, именно такой вывод сформировался у меня после вдумчивого чтения довольно невнятной документации, а также форумов и блогов по запросу «What consolekit for?». Для однопользовательского десктопа польза этих прослоек стремится к нулю. Мочим.
Собственно, консолькит в арче уже выпилили, он остался в ауре в виде пакета consolekit-git, и от него уже ничего не зависит, можно просто удалить. А policykit перевели в модуль, или какеготам, юнит системд polkitd. У меня вместо него поставлен из аура пакет polkit-consolekit, который и предоставляет полисикитную функциональность. Так как у меня нет DE, то пакетов, зависящих от этого полкита, весьма немного. Пока я его не трогаю, но постараюсь постепенно отучить эти пакеты от polkit'а и удалить его, если, конечно, не всплывёт где-нибудь, что на самом деле он аццки необходим и практически на нём всё держится...
Дальше, убиваем менеджер сессий консолькит из автозагрузки. Раньше openbox стартовал через строчку в ~/.xinitrc
, теперь ck-launch-session можно нафинг убрать.
Теперь самое интересное, ради чего всё и затевалось — мягкая перезагрузка. На самом деле, теоретически, при программной перезагрузке sudo reboot всем работающим программам рассылается сигнал SIGTERM, который, теоретически, позволяет программам закрыться мягко и своими силами. Но к конкретном случае есть два «но»: первое, не все программы правильно обрабатывают SIGTERM (например, Total Commander под wine :-), и второе, openbox при получении SIGTERM рассылает SIGKILL всем дочерним процессам. Поэтому быстрый поиск в гугле — после пары часов пиления своего велосипеда ;-} — подсказал готовое решение здесь.
Под кат скопирую тот пост на всякий случай:
Теперь всё спокойненько завершается и перезагружается.