6

Я хочу запускать некоторые команды каждый раз, когда пользователь компьютера с Ubuntu 9.10 выходит из системы или выключается. Каков наилучший способ сделать это? Каждый пользователь использует gnome, если это помогает.

5 ответов5

2

После некоторого поиска в Google я нашел, как запустить скрипт при выходе? который говорит добавить скрипт в $ HOME/.bash_logout.

Если это не сработает, добавьте

$HOME/.bash_logout

в /etc /gdm /PostSession /Default, чтобы он правильно выполнял сценарий выхода из системы.

Если пользователь все равно выйдет из системы до завершения работы, это должно охватывать обе базы.

1

Если вы используете 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*
1

Если вы не хотите привязываться к конкретному диспетчеру отображения, вы можете поместить свои скрипты в /etc/X11/Xreset.d/ который будет запускаться от имени пользователя root каждый раз, когда вы выходите из xsession.

Например: я хочу, чтобы моя виртуальная машина виртуальной машины находилась в состоянии сохранения каждый раз, когда пользователь выходит из системы, поэтому у меня есть скрипт, который это делает. #!/bin/bash su - $USER -c 'vboxmanage list runningvms | cut -d\" -f2 | xargs -I{} vboxmanage controlvm {} savestate'

0

Хм ... ну, если вы гуглите "скрипт запуска 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

предыстория о том, как это работает: введение в уровни выполнения.

-

Как замечание, должен ли я воздерживаться от того, чтобы побаловать людей ответами, когда стало ясно, что они даже не пытались сначала искать в Интернете (я новичок здесь ...)?

0

Вы, вероятно, можете использовать интерфейс ConsoleKit dbus.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .