
Eu tenho um script python que expõe um serviço RESTful (usando a estrutura flask). O que eu gostaria de fazer com este serviço é clonar a versão mais recente do script python e, em seguida, iniciar main.py.
Está claro para mim que ele pode ser iniciado no nível de inicialização 3, mas não tenho certeza de como exatamente as informações de inicialização devem ser configuradas e também não tenho certeza se não há problema em atualizar o crontab com
sudo update-rc.d myservice enable 3
o que realmente está no script myservice é algo como:
#!/bin/sh
rm -fR /home/pi/myservicedir
git clone https://repo/code.git /home/pi/myservicedir
cd /home/pi/myservicedir
python main.py
Responder1
Seu script não é um init.d
script adequado. Pode haver um arquivo de modelo /etc/init.d
que você pode usar para criar seu script inicial. Caso contrário, consulte alguns dos outros scripts para /etc/init.d
encontrar o padrão usado pela sua distribuição.
Alternativamente, rc.local
geralmente é executado bem tarde no ciclo de inicialização. Este seria um local apropriado para colocar seu código de inicialização. Verifique o valor de $1
is start
antes de executar seu código.
Os servidores são iniciados na ordem listada em /etc/rc3.d
. Os scripts de encerramento iniciados K
são executados primeiro em ordem lexical e, em seguida, os scripts de início iniciados S
são executados em ordem lexical. Se você quiser ter certeza de que tudo está funcionando, use uma ordem de início de 99
.
Sua distribuição deve ter um método para instalar e remover links nos rc#.d
diretórios. No seu caso parece ser update-rc.d
. Isso geralmente é controlado por linhas de comentários na parte superior do init.d
script.
Deve haver man
páginas descrevendo os programas e arquivos que você precisa. Tente correr man update-rc.d
e man -k init
.
Responder2
Especifique $network, assim:
#!/bin/bash
### BEGIN INIT INFO
# Provides: mountftp
# Required-Start: $remote_fs $syslog $network
# Required-Stop: $remote_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Mount disk2
# Description: Mount disk2
### END INIT INFO