LINUX.ORG.RU

Корректное завершение иксовых приложений?

 


0

2

Существует ли вообще возможность корректно завершать запущенные иксовые приложения «изнутри системы»? Всякие kill,pkill,killall - не то, потому что даже SIGTERM - это все равное некорректное убиение процесса «снизу». Есть ли аналог нажатия на крестик в углу окна, например посредством DM?

★☆
Ответ на: комментарий от teod0r

Потому что при закрытии через всякие kill (sigterm по умолчанию, мягче сигнала вроде нет?) конфиги корректно не сохраняются. Пример - браузер при закрытии sigterm'ом при следующем включении запустится как после крэша. (в отличие от закрытия крестиком). То же самое касается и многих других иксовых приложений.

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

Пример - браузер при закрытии sigterm'ом при следующем включении запустится как после крэша

Ясно. Тогда для того, чтобы он запускался не как после крэша, он должен быть убит через xcb_kill_client(). Эта функция вызывается в awesome WM посредством нажатия Mod4 + Shift + c и корректно закрывает абсолютно любое окно в фокусе.

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

Да, примерно такой сигнал и хотелось бы обнаружить. А xkill штука интересная, но во-первых, требует мышкой елозить, во- вторых, как я понял из описания, она всего лишь разрывает связь приложения с самими иксами, но не останавливая сам процесс.

vaddd ★☆
() автор топика

А что должно происходить при получении сигнала, если при нажатии на крестик, программа спрашивает что-либо? Прямого аналога в общем случае нет, так что можно что-то найти только для конкретных программ. Ну и нюансы поведения при получении SIGTERM - это тоже индивидуально.

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

Я согласен насчет индивидуальности, но пока что я уперся сразу в несколько приложений (конкретизировать не буду, это одноплатник в устройстве автоматики), в которых при крестозакрытии ничего не запрашивается, а sigterm ими не переносится. Поэтому для начала хотелось бы поискать возможность управления через DE

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

Пример - браузер при закрытии sigterm'ом при следующем включении запустится как после крэша.

Даю команду на выключение, не важно как, кнопкой в DE или на системнике — машина глушится, лиса потом нормально запускается.

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

У меня тоже. Это значит что когда сигнал на выключение получает DE - он закрывает приложения корректно, а не убивает процессы kill'ом. Как он это делает?

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

Как он это делает?

Приблизительно - посылает сообщение с просьбой удалить окно. Реакция зависит опять же от приложения, но большинство, естественно, реагируют адекватно.

Иногда может отслеживать по таймеру не зависло ли приложение, и потом переспрашивать для принятия более «серьёзных» мер.

Elyas ★★★★★
()
Последнее исправление: Elyas (всего исправлений: 1)
Ответ на: комментарий от Elyas

Ну это настолько приблизительно, что как бы само собой разумеется ) Какими доступными юзеру средствами можно послать подобный сигнал на закрытие окна? Вот вроде пакет wmctrl нечто похожее делает. А еще?

vaddd ★☆
() автор топика

Существует ли вообще возможность

да

Всякие kill

именно kill, читай документацию до просветления.

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

И что вы там интересного нашли в документации? )

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