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.
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)
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'
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 ..)?
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.
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
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.
fonte
/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)
Testar:
Abra o arquivo apropriado, ou seja
Adicione um comando de teste (crie um arquivo no meu diretório pessoal)
Então eu fiz o logout e voltei novamente, e verifiquei se o novo arquivo foi criado
fonte
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'
fonte
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 :
Isso permitirá que você execute o script como um programa.
Para que um script seja executado no desligamento, use esta técnica:
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 ..)?
fonte
Você provavelmente pode usar a interface dbus do ConsoleKit.
fonte