Executando um comando na inicialização

Executando um comando na inicialização

Recentemente me deparei com "lembrar"no Linux. Gostei quase imediatamente, mas para que meus lembretes aparecessem, precisei executar 'remind' no modo daemon. Feito de forma bastante simples, usando o seguinte comando:

remind -z -k'gmessage %s &' /home/googie/.reminders &

Seria ridículo iniciar manualmente o daemon 'lembrar' toda vez que inicializo meu computador (alguém teria que me lembrar de fazer isso!), então pensei em fazê-lo rodar automaticamente na inicialização. Tive a impressão de que isso seria bastante simples de fazer, mas tive uma surpresa.

Eu fiz o seguinte (nesta sequência):

  1. Criei um script (com casos de início, parada e reinicialização), coloquei-o em /etc/init.d, executei 'update-rc.d' para criar alguns links para determinados níveis de execução, reiniciei --- sem sorte
  2. Criei um arquivo 'remind.conf', coloquei-o em /etc/init (referindo-se a 'http://upstart.ubuntu.com/getting-started.html'), reiniciado --- ainda sem sorte
  3. Abriu '/etc/rc.local', colocou o comando para iniciar o daemon 'lembrar' logo antes de 'exit 0', reiniciou --- ainda sem sorte
  4. Abri o crontab (sudo crontab -e), escrevi '@reboot' seguido pelo comando para iniciar o daemon 'remind' na última linha, reiniciei --- ainda sem sorte
  5. Abriu 'Sistema-> Preferências-> Aplicativos de inicialização', adicionou um novo programa de inicialização com o comando para iniciar o daemon 'lembrar', reiniciou --- ainda sem sorte
  6. Criei um script em meu diretório pessoal, coloquei o comando para iniciar o daemon 'lembrar' dentro do script, chamei esse script de '/etc/rc.local', reiniciei --- ainda sem sorte
  7. Chamei o script em meu diretório pessoal após '@reboot' no crontab, reiniciei --- ainda sem sorte
  8. Chamei o script em meu diretório pessoal usando 'System->Preferences->Startup Applications' --- finalmente funcionou, e o daemon 'remind' agora é executado!!

Então agora vamos às minhas 3 perguntas:

  1. É realmente tão complicado no Linux rodar algo na inicialização ou é apenas minha falta de conhecimento?
  2. Tentar as etapas 1 e 2 foi mesmo aconselhável? Acho que eles são usados ​​para transformar algo em um serviço. O daemon 'lembrar' também não é um serviço?
  3. Por que a abordagem '/etc/rc.local' ou 'crontab' não funcionou? Há algum registro que eu possa verificar para ver o que está errado?

(qualquer referência relacionada para eu ler também seria apreciada)

Responder1

1) Receio que seja o último. Mas não se sinta mal, a maioria das pessoas tropeça nisso.

2+3) Os únicos que teriam chance de funcionar são 5 e 8. Os scripts de inicialização e o cron não têm ideia da sua sessão de login, então não há como apontar remindna gmessagedireção certa. E 5 não funcionou porque o e comercial no final é um recurso do shell, não do comando. Você provavelmente nem precisará dele se o comando estiver sendo executado como um aplicativo de inicialização.

Responder2

Você pode colocar esta linha no script de inicialização ~/.xinitrcde qualquer desktop X Window.

informação relacionada