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.
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.
Respostas:
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.
/etc/gdm/PostSession/Default
não existe, onde mais eu posso colocar o meu script de tal forma que ele seja executado no logout, bem como o desligamento?
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*
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'
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 ..)?
Você provavelmente pode usar a interface dbus do ConsoleKit.