Я хочу запускать некоторые команды каждый раз, когда пользователь компьютера с Ubuntu 9.10 выходит из системы или выключается. Каков наилучший способ сделать это? Каждый пользователь использует gnome, если это помогает.
Я хочу запускать некоторые команды каждый раз, когда пользователь компьютера с Ubuntu 9.10 выходит из системы или выключается. Каков наилучший способ сделать это? Каждый пользователь использует gnome, если это помогает.
Ответы:
После некоторого поиска в Google я нашел Как запустить скрипт при выходе? в котором говорится добавить скрипт в $ HOME / .bash_logout.
Если это не сработает, добавьте
$HOME/.bash_logout
в / etc / gdm / PostSession / Default, чтобы он правильно выполнял сценарий выхода из системы.
Если пользователь все равно выйдет из системы до завершения работы, это должно охватывать обе базы.
/etc/gdm/PostSession/Default
не существует, где еще я могу разместить свой скрипт так, чтобы он выполнялся как при выходе из системы, так и при завершении работы?
Если вы используете KDE (я использую Ubuntu с KDM)
# From the kdm man page
# http://manpages.ubuntu.com/manpages/oneiric/man1/kdm.1.html
/etc/kde4/kdm/Xreset - script to run as root after session exits
/etc/kde4/kdm/Xsession - script to run as user after login of user
/etc/kde4/kdm/Xsetup - script to run as root before the login dialog appears
/etc/kde4/kdm/Xstartup - script to run as root before session starts
Тестировать:
Откройте соответствующий файл, т.е.
sudo emacs /etc/kde4/kdm/Xreset
Добавить тестовую команду (создать файл в моем домашнем каталоге)
touch /home/dericbytes/this-file-was-created-by-xreset
Затем я вышел из системы, снова вернулся и проверил, был ли создан новый файл.
ls /home/dericbytes/this*
Если вы не хотите привязываться к конкретному диспетчеру отображения, вы можете поместить свои сценарии в /etc/X11/Xreset.d/
который будет запускаться с правами root каждый раз, когда вы выходите из xsession.
Например: я хочу, чтобы виртуальная машина виртуальной машины находилась в состоянии сохранения каждый раз, когда пользователь выходит из системы, поэтому у меня есть скрипт, который это делает.
#!/bin/bash
su - $USER -c 'vboxmanage list runningvms | cut -d\" -f2 | xargs -I{} vboxmanage controlvm {} savestate'
Хм .. ну если гуглить "скрипт запуска linux при выключении", то первый результат пост на форумах Ubuntu с вашим ответом :
chmod +x /etc/init.d/foo.sh
Это позволит вам выполнить скрипт как программу.
Чтобы запустить скрипт при выключении, используйте эту технику:
sudo ln -s /etc/init.d/foo.sh /etc/rc0.d/K10rensa.sh sudo ln -s /etc/init.d/foo.sh /etc/rc6.d/K10rensa.sh
предыстория того, как это работает: Введение в уровни выполнения ,
-
Как замечание, должен ли я воздерживаться от того, чтобы побаловать людей ответами, когда стало ясно, что они даже не пытались сначала искать в Интернете (я новичок здесь ...)?
Вы, вероятно, можете использовать ConsoleKit Интерфейс dbus.