Executar script no logout / shutdown do Ubuntu


7

Eu quero executar alguns comandos toda vez que um usuário de uma máquina do Ubuntu 9.10 sair ou desligar. Qual é a melhor maneira de fazer isso? Todo usuário usa o gnome se isso ajudar.


isso deve realmente estar sob o site "Linux & Unix" SE ... IMHO
CenterOrbit

Respostas:


2

Depois de pesquisar no Google, encontrei Como executar um script no logout? que diz para adicionar o script para $ HOME / .bash_logout.

Se isso não funcionar, adicione

$ HOME / .bash_logout

para / etc / gdm / PostSession / Default para que ele execute o script de logout corretamente.

Vendo como antes de desligar o usuário está desconectado de qualquer maneira, isso deve cobrir ambas as bases.


3
Usando o Ubuntu 12.04, /etc/gdm/PostSession/Defaultnão existe, onde mais eu posso colocar o meu script de tal forma que ele seja executado no logout, bem como o desligamento?
Kushal

/ etc / gdm3 / é a ligeira correção necessária
Tim Richardson

1

Se você está usando o KDE (estou usando o Ubuntu com o 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

Testar:

Abra o arquivo apropriado, ou seja

sudo emacs /etc/kde4/kdm/Xreset

Adicione um comando de teste (crie um arquivo no meu diretório pessoal)

touch  /home/dericbytes/this-file-was-created-by-xreset

Então eu fiz o logout e voltei novamente, e verifiquei se o novo arquivo foi criado

ls /home/dericbytes/this*

1

Se você não quiser se vincular a um gerenciador de exibição específico, poderá colocar seus scripts sob o /etc/X11/Xreset.d/qual será executado como root toda vez que você sair de uma xsession.

Por exemplo: Eu quero que minhas VMs do VirtualBox estejam no savestate toda vez que um usuário efetua logout, então eu tenho um script que faz isso. #!/bin/bash su - $USER -c 'vboxmanage list runningvms | cut -d\" -f2 | xargs -I{} vboxmanage controlvm {} savestate'


0

Hmm..bem se você procurar no google "linux run script on shutdown", o primeiro resultado é um post nos fóruns do Ubuntu com sua resposta :

chmod + x /etc/init.d/foo.sh

Isso permitirá que você execute o script como um programa.

Para que um script seja executado no desligamento, use esta técnica:

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

experiência em como isso funciona: Uma introdução aos níveis de execução .

-

Como um sidenote, devo abster-me de ceder às pessoas com respostas quando está claro que elas nem sequer tentaram pesquisar na Internet primeiro (eu sou novo aqui ..)?


1
Isso não manipula eventos de logout. Além disso, bem-vindo ao SO! A única vez que a falha em procurar se torna um problema é quando alguém está fazendo uma pergunta que foi claramente perguntada (aqui) antes. Pesquisando antes não é necessário. Como o link que você forneceu claramente não responde totalmente à pergunta, é uma boa chance que o OP já o tenha visto :)
Tim Post

0

Você provavelmente pode usar a interface dbus do ConsoleKit.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.