Запустите Script при выходе из системы / выключении Ubuntu

18033

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

6
this should really be under the "Linux & Unix" SE site... IMHO CenterOrbit 12 лет назад 0

5 ответов на вопрос

2
Arda Xi

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

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

$ HOME / .bash_logout

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

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

В Ubuntu 12.04 `/ etc / gdm / PostSession / Default` не существует, где еще я могу разместить свой скрипт так, чтобы он выполнялся как при выходе из системы, так и при завершении работы? Kushal 11 лет назад 3
/ etc / gdm3 / нужна небольшая коррекция Tim Richardson 5 лет назад 0
1
dericybtes

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

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

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

0
Jay Taylor

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

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

-

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

Это не обрабатывает события выхода из системы. Также добро пожаловать на ТАК! Единственный случай, когда поиск невозможен, становится проблемой, когда кто-то задает вопрос, который был четко задан (здесь) ранее. Поиск в Google не требуется. Поскольку ссылка, которую вы предоставили, явно не дает полного ответа на вопрос, вполне вероятно, что ОП уже видел ее :) Tim Post 14 лет назад 1
0

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