Como executar um script toda vez que eu fizer login E desbloquear a sessão

4

No Saucy salamander eu preciso executar um script cada vez que eu fizer o login, então cada vez que eu desbloquear a sessão após o bloqueio manual ou auto sleep. Eu não posso usar o "Aplicativo de inicialização" para isso, porque ele não acionaria no desbloqueio.

    
por useful 04.01.2014 / 22:12

2 respostas

6

Encontrado este , criado por Usuário do usuário do Ubuntu opus1 . Talvez isso possa ajudar.

Isso é o que a postagem fornece como uma solução:

  

Para qualquer pessoa interessada, eis o que fiz: olhei os registros   (especificamente /var/logs/auth.log) e viu que uma entrada é feita quando   sempre a senha é verificada e aceita. Meu log disse:

Aug  7 14:10:57 mumble gnome-screensaver-dialog: gkr-pam: unlocked login keyring
     

Finalmente encontrei um aplicativo chamado "Swatch", que monitora um log   para você e executará um script quando uma string que você especificar aparecer   nesse log. O Swatch requer um arquivo de configuração (.swatchrc), e o meu parece   assim:

watchfor /unlocked login keyring/
  exec /root/.gnome2/nautilus-scripts/wakeServer
     

onde "/ chaveiro de login desbloqueado /" é a string a ser procurada e "exec"   define o script para ser executado quando for encontrado. O meu script wakeServer parece   assim:

#!/bin/bash

#wake the server
wakeonlan AA:BB:CC:DD:EE:FF

#record info in the log file
myVar="woke server at login:"
echo "$myVar">>/home/me/.serverWake.log
date>>/home/me/.serverWake.log
     

onde "AA: BB: CC: DD: EE: FF" é o endereço MAC do meu servidor.

     

A amostra precisará ser inserida como um aplicativo de inicialização (crie uma   entrada no sistema | Preferências | Aplicativos de inicialização chamados   "runSwatch" e faça o comando "swatch --tail-file /var/log/auth.log   --daemon ". (No Debian, somente root pode ler logs. Assim, o comando de inicialização precisa ser precedido por" sudo "e a amostra precisará ser adicionada a   o arquivo sudoers sem uma senha. No Ubuntu, parece não-raiz   os usuários podem ler logs. Pode haver um problema de segurança com a concessão   acesso sem senha a amostra, mas no meu caso parece aceitável).

     

Até agora, funcionou perfeitamente!

    
por GabrielF 04.01.2014 / 22:28
0

.bashrc será o lugar que você deseja usar para esse processo. .bashrc contém o perfil dos usuários e todas as configurações, e é isso que o sistema lerá logo ao efetuar login, portanto, é aí que você deseja colocar seus códigos para os scripts personalizados para serem executados durante o login.

Aqui está um exemplo dos meus códigos que eu uso. Este é o código que eu adicionei à linha inferior do .bashrc:

if [ -f ~/.myscripts ]; then
. ~/.myscripts
fi

E .myscripts contém meus scripts no shell bash que eu quero que sejam disparados quando eu fizer login.

    
por Faron 04.01.2014 / 22:22