Я хочу запускать некоторые команды каждый раз, когда пользователь компьютера с Ubuntu 9.10 выходит из системы или выключается. Каков наилучший способ сделать это? Каждый пользователь использует gnome, если это помогает.
5 ответов
После некоторого поиска в Google я нашел, как запустить скрипт при выходе? который говорит добавить скрипт в $ HOME/.bash_logout.
Если это не сработает, добавьте
$HOME/.bash_logout
в /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.