Diferenças como executar scripts na inicialização

3

Eu li várias perguntas sobre how to run script at startup , mas não tenho certeza de quais são as diferenças e qual é a maneira correta de fazê-lo sem a GUI.

  • /etc/rc.local
  • trabalho cron usando @reboot
  • ~/.profile
  • /.bash_profile
  • /.bash_login

Exemplos que preciso executar na inicialização

  • apt-get update
  • definir algumas permissões
  • definir o brilho da tela
  • ativar numlock em
  • touchpad de configuração
  • execute alguns aplicativos
  • executa alguns scripts como root (devo chamá-los com sudo mesmo que o script principal já tenha sido executado como root?)
  • executar alguns scripts sem raiz

Seria bom ter um único script que lida com todas essas coisas no único arquivo. Como fazer isso corretamente?

    
por Sebastian 18.07.2016 / 19:08

1 resposta

5

~/.profile , /.bash_profile e /.bash_login são melhores para definir as variáveis de ambiente e configurar o ambiente do que para executar scripts. Eu não recomendaria isso.

/etc/rc.local pode ser usado para isso, mas lembre-se de que ele será iniciado antes que a GUI seja iniciada. A menos que seja por um script que envia apenas notificação para a GUI. Observe que você precisará chamar seu script em /etc/rc.local no formato /full/path/to/script & ( & para evitar o bloqueio de outros scripts que você possa ter na execução). Você também precisará da variável export DISPLAY=:0 no próprio script ou no /etc/rc.local . Aplicativos que precisam de GUI precisarão dessa variável para existir. Mesma ideia com cron job using @reboot .

Se você quiser executar scripts no login da GUI, a maneira correta é criar o arquivo .desktop para cada script na sua pasta ~/.config/autostart/ . Você pode fazer isso manualmente ou usar o aplicativo Startup Applications que faz exatamente a mesma coisa para você. Basta abrir o Unity Dash e digitar "Startup Applications"

Visão geral dos seus exemplos

  • apt-get update não precisa de GUI, apenas de rede. /etc/rc.local está ok para este.
  • set some permissions , isso não precisa de GUI, apenas use /etc/rc.local
  • set display brightness não precisa de GUI também, mas pode precisar de privilégios de root. Se você quiser alterá-lo antes do login, será necessário gravar em um arquivo especial. Consulte meu outro post sobre esse assunto
  • turn numlock on pode não precisar da GUI, também
  • setup touchpad dependendo do seu método, pode ou não precisar de GUI
  • run some apps se forem aplicativos de interface gráfica, eles precisarão ser iniciados a partir dos aplicativos de inicialização descritos acima.
  • run some scripts as root você pode usar /etc/rc.local ou cron para estes. Rodar aplicações GUI como root é uma má ideia por muitas razões, por isso evite isso.
  • run some scripts without root usa o método Startup Applications.
por Sergiy Kolodyazhnyy 18.07.2016 / 19:31