Измените Gsetting со сценарием на Выходе из системы

Система:

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 () названный)

Возможное решение

  • Запустите разнообразие с [StartUpApplication] in bash и используйте ~/.bash_logout сценарий для остановки. Но Как?

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

2
задан 13 May 2013 в 09:59

1 ответ

Решение не простое. Требуется запуск скрипта при входе в X и ожидание сеанса X и. К счастью, у нас есть inotify и pid gnome-сессии.

Процесс разнообразия уже должен быть корректно завершен во время выполнения скрипта.

  1. Установить inotify-tools пакет.
  2. Создать или изменить скрипт ~ / .xprofile и добавить к нему следующую строку

    sh .xlogout &
    
  3. Создать ~ / .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]
0
ответ дан 13 May 2013 в 09:59

Другие вопросы по тегам:

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