Как безопасно убить xscreensaver из скрипта / командной строки?

4400
jayhendren

Я использую рабочую станцию ​​Linux (RHEL6). У меня есть небольшой сценарий, который я написал, который блокирует и разблокирует экран через xscreensaver при подключении или отключении флэш-накопителя USB, что фактически превращает его в физический ключ к моей рабочей станции. Проблема в том, что нет хорошего способа разблокировать xscreensaver из командной строки. xscreensaver-command -deactivateнелогично, только «имитирует активность пользователя» и все еще требует пароль для разблокировки экрана. xscreensaver-command -exitубивает родительский демон, только xscreensaverесли не работает заставка. Как xscreensaver-command -exitпредупреждает man-страница ,

Warning: never use kill -9 with xscreensaver while the screensaver is active. If you are using a virtual root window manager, that can leave things in an inconsistent state, and you may need to restart your window manager to repair the damage. 

Действительно, в настоящее время я использую в pkill xscreensaverкачестве метода избавления от заставки из скрипта, что часто приводит к процессам зомби и другим беспорядкам. Как можно безопасно разблокировать заставку из скрипта / командной строки?

2
Учитывая [философию, лежащую в основе его дизайна] (http://www.jwz.org/xscreensaver/faq.html), я * сильно * сомневаюсь, что стоковая xscreensaver будет разблокирована без пароля любым способом, кроме принудительного уничтожения, которое вы в настоящее время использую. Лучшим вариантом будет, вероятно, изменить исходный код, включив в него что-то вроде параметра «-forceunlock», и создать из него собственный двоичный файл. Aaron Miller 10 лет назад 0
Спасибо, Аарон. Я не понимаю, насколько важна ваша ссылка, но я верю, что вы правы. Если бы это был ответ, я бы его принял, хотя это не то, что я хочу услышать. jayhendren 10 лет назад 0
Комментарий преобразуется в ответ и расширяется, чтобы дать больше фона. Рад помочь! (И, эй, вероятно, будет не так уж сложно изменить исходный код - поскольку я компетентен выносить любые суждения о коде jwz, я нахожу его чрезвычайно хорошо написанным и с которым легко работать. ) Aaron Miller 10 лет назад 0

1 ответ на вопрос

3
Aaron Miller

Учитывая почти мономантическую направленность xscreensaver на безопасность, на что намекают ответы в jwz's xscreensaver FAQ и более подробно разъясняется в On Toolkits, я сильно сомневаюсь, что стоковая xscreensaver разблокируется без пароля любым способом, кроме принудительного уничтожения, которое вы используете в настоящее время., Лучшим вариантом будет, вероятно, изменить исходный код, включив в него что-то вроде параметра «-forceunlock», и создать из него собственный двоичный файл.

Похожие вопросы