Ubuntu Ringtail Полный нетерпения (13.04) от новой установки.
Основной: Измените gsetting (обои для рабочего стола) со сценарием на пользовательском выходе из системы.
Я пытаюсь остановить приложение, названное разнообразием (этот) на Выходе из системы, что я вставил свои обходные решения. Разнообразие является приложением автоматического запуска, таким образом, оно только что запустилось каждый раз, я вхожу в систему. Разнообразие имеет функцию on_quit()
и force_quit_thread()
это называют когда остановленный процесс приложения. Так, я добавил свою строку сценария Python внутри, которые выполняют мой реальный сценарий (normalize
). Когда я пытался выйти из разнообразия обычно, оно делает то, что я хочу! Я, хотя, когда система регистрируют меня, любой процесс, который я запустил, должен также быть остановлен. Но затем, я понял, это не. Так, я не мог использовать этот путь.
Это позволило мне вещь использовать другой способ уничтожить процесс разнообразия вручную когда я выходить из системы. Я попробовал ~/.bash_logout
(Я сомневаюсь относительно этого, потому что я знаю, что автоматический запуск не работает на ударе); ~/etc/gdm/PostSession/Default
(Но, я не использование gdm); ~/etc/lightdm/lightdm.conf
(Этот не работает также! Каким образом?); pam_script / pam-сценарий (я не знаю, как работать с ним. Действительно отличающийся.)
Но, проблема возникает, когда я пытаюсь выйти из системы своя учетная запись. Это ни один не выполняет on_quit (), ни force_quit_thread (). И журнал я получил от ~/nohup.out
видьте строку в последний раз, вот, пожалуйста:
.... bla-bla ... [only see last line]
IOError: [Errno socket error] [Errno 2] No such file or directory
(variety:15627): Gdk-WARNING **: variety: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.
Они потеряли имеющиеся ресурсы, правильно? Не редактор выхода обычно затем и средства, gsetting не измененный.
1) Добавленный сценарий внутри quit functions
Это идет /opt/extras.ubuntu.com/variety/variety/VarietyWindow.py
:
<pre>bashCommand = "/home/abdillah/Toolbox/command/normalize"
os.system(bashCommand)</pre>
2) Сценарий внутри нормализует
Цель: изменение наклеивает обои, когда разнообразие завершено.
<pre>echo $(cat "${HOME}"/.self-log)"| normalize" > "${HOME}"/.self-log #append log
wallpaper=$(cat /home/abdillah/.wallpaper)
filename="file://"$wallpaper
configname=${filename/'#'/"%23"}
gsettings set org.gnome.desktop.background picture-uri $configname #the most important</pre>
3) Файл конфигурации LightDM
Тот, которые заставляют меня перепутать, - то, что в он - документация, нет упомянутого оператора session-cleanup-script
. Это удерживается от использования?
[SeatDefaults] user-session=ubuntu greeter-session=unity-greeter autologin-user= session-cleanup-script=/home/abdillah/Toolbox/command/logoff
4) файл выхода из системы содержит:
.self-файл-журнала, все еще пустой => сбой
#!/bin/bash echo $(cat "${HOME}"/.self-log)" |fail? (OnScript)" > "${HOME}"/.self-log #append log killall variety /opt/extras.ubuntu.com/variety/bin/variety -q echo $(cat "${HOME}"/.self-log)" |Success? (OnScript)" > "${HOME}"/.self-log #log exit 0
Когда любой думает, выше условия очень конкретно, просто ответьте на следующий вопрос. 1. Как к выполняющемуся сценарию непосредственно на выходе из системы (CMIW пути выше. В противном случае любое предложение) или 2. Как я могу остановить разнообразие правильно, когда я вышел из системы? (Так on_quit () названный)
in bash
и используйте ~/.bash_logout сценарий для остановки. Но Как?Хорошо. его длинное. Но, я пытаюсь сделать максимально ясным. Поскольку там, существует большой вопрос, связанный с этим, что я читал. Действительно нужен кто-либо справка.Спасибо.
Решение не простое. Требуется запуск скрипта при входе в X и ожидание сеанса X и. К счастью, у нас есть inotify и pid gnome-сессии.
Процесс разнообразия уже должен быть корректно завершен во время выполнения скрипта.
inotify-tools
пакет. Создать или изменить скрипт ~ / .xprofile и добавить к нему следующую строку
sh .xlogout &
Создать ~ / .xlogout со следующим содержанием
FILE=/tmp/.ICE-unix/$PPID # pid of parent = gnome-session
sleep 10s # wait for $FILE creation
inotifywait -qe delete_self $FILE # wait for $FILE deletion = logout
# your code goes here # = on_quit
# gsettings reset org.gnome.desktop.background picture-uri
[ 115]