Como posso fazer o Debian executar o script python m na inicialização?

5

Eu tenho este script na minha pasta pessoal (pi): server.py.

Como eu poderia fazer o Debian rodar este script na inicialização, então eu não preciso logar e rodar manualmente?

    
por Jason94 06.07.2012 / 21:56

2 respostas

4

No momento em que esta resposta foi escrita pela primeira vez, o Debian (como instalado por padrão) usava scripts "SysV" rc com o binário start-stop-daemon . Havia um script de exemplo, no arquivo /etc/init.d/skeleton , que poderia ser uma base para o script rc de alguém. Uma vez que um deles tivesse o script rc e estivesse marcado como executável, o comando update-rc.d poderia ser usado para adicioná-lo aos níveis de execução desejados.

Com o passar dos anos, as coisas mudaram. Em 2014, em particular, duas coisas mudaram:

  • O script /etc/init.d/skeleton foi substituído pelo script de exemplo na página de manual init-d-script (5), que mais tarde em 2018 tornou-se a base disponível somente quando /etc/init.d/skeleton foi eliminado completamente . O conteúdo do esqueleto também mudou significativamente, não precisando mais que as pessoas gravassem chamadas para start-stop-daemon ou, na verdade, escrevessem muito mais do que algumas atribuições variáveis. (Veja link .)
  • O padrão instalado foi alterado para systemd e, em vez disso, foi necessário gravar os arquivos da unidade de serviço do systemd (que não precisavam ser marcados como executáveis) e ativá-los com systemctl enable . Não havia nenhum arquivo de unidade de exemplo, no entanto. (Veja link .)

Assim, a partir de 2018, você precisa escrever um arquivo de unidade de serviço systemd que (no mínimo) nomeie seu script (usando um nome de caminho absoluto) em uma configuração ExecStart . Você pode estar querendo, embora a pergunta não especifique de uma forma ou de outra, para usar uma configuração User para que o script seja executado sob a égide da sua conta de usuário e não do superusuário. E você pode , novamente dependendo das coisas não especificadas na pergunta, precisa coordenar a ordem relativa de invocar seu script e a (auto) montagem de seu diretório pessoal se ele for montado separadamente.

    
por 06.07.2012 / 21:58
1

Coloque su -c 'SCRIPT' USER em /etc/rc.local .

    
por 07.07.2012 / 13:20