Como faço para iniciar um programa no momento da inicialização com um usuário específico depois que alguns outros serviços foram iniciados?

1

Eu tenho um aplicativo com o qual estou procurando fazer o seguinte no Oracle Enterprise Linux 7:

  • Execute este aplicativo no boot depois que determinados outros aplicativos forem iniciados (sendo um deles o MongoDB).
  • Desejo executar este aplicativo com um usuário específico, porque esse usuário é personalizado com um conjunto específico de permissões de que preciso.
  • Este aplicativo precisa ser executado nas portas 80 e 443. Não há problema em personalizar o usuário mencionado para permitir que ele use essas portas sem sudo (não sei como).
  • A saída padrão do aplicativo e os fluxos de erro padrão devem ser redirecionados para um arquivo.

Como posso fazer isso, idealmente, sem ler sete manuais para fazer o que eu suponho ser uma coisa simples?

    
por JesseTG 29.01.2017 / 04:08

1 resposta

0

Normalmente, esse é o trabalho do init, upstart ou systemd. Principalmente já existem scripts para este trabalho, como /etc/rc.local. E quase todos os daemon vêm com scripts aprovados para um início seguro.

Quick 'n Solução Suja: escreva um script de shell para iniciar o programa. Deve resolver as dependências do usuário, permissões e outras condições prévias ou simplesmente aguardar alguns minutos. Digite o script com crontab -e como

@reboot sleep 120 && /full/path/to/script >& /var/log/mydaemon.log

Dê uma olhada no systemd-services!

    
por 04.02.2017 / 15:59