init.d ¿Cómo iniciar un servicio en init.d cuando la red funciona completamente?

init.d ¿Cómo iniciar un servicio en init.d cuando la red funciona completamente?

Tengo un script en Python que expone un servicio RESTful (usando el marco del matraz). Lo que me gustaría hacer con este servicio es que clone la versión más reciente del script de Python y luego inicie main.py.

Para mí está claro que podría iniciarse en el nivel de inicio 3, sin embargo, no estoy seguro de cómo se debe configurar exactamente la información de inicio y tampoco estoy seguro de si está bien actualizar el crontab con

sudo update-rc.d myservice enable 3

lo que realmente hay en el script myservice es 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

Respuesta1

Su guión no es un init.dguión adecuado. Es posible que haya un archivo de plantilla /etc/init.dque pueda utilizar para crear su secuencia de comandos de inicio. De lo contrario, mire algunos de los otros scripts /etc/init.dpara encontrar el patrón utilizado por su distribución.

Alternativamente, rc.localnormalmente se ejecuta muy tarde en el ciclo de arranque. Este sería un lugar apropiado para colocar su código de inicio. Verifique el valor de $1is startantes de ejecutar su código.

Los servidores se inician en el orden indicado en /etc/rc3.d. Los scripts de finalización que comienzan Kse ejecutan primero en orden léxico, luego los scripts de inicio Sse ejecutan en orden léxico. Si desea asegurarse de que todo esté funcionando, utilice un orden de inicio de 99.

Su distribución debe tener un método para instalar y eliminar enlaces en los rc#.ddirectorios. En tu caso parece serlo update-rc.d. Esto normalmente se controla mediante líneas de comentarios en la parte superior del init.dscript.

Debería haber manpáginas que describan los programas y archivos que necesita. Intenta correr man update-rc.dy man -k init.

Respuesta2

Especifique $network, así:

#!/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

información relacionada