Yo diría # 2, pero muy cerca del # 1 - "Malo. Malo. Malo. Nunca hagas esto". El estándar, tal como es, para los scripts de inicio de Linux está en el LSB , y aunque nunca sale y dice "estos son scripts de shell bourne", se hacen varias suposiciones. Una, que las líneas que comienzan con # son comentarios, resulta que funciona bien. Más problemático es el requisito de que el script de inicio ejecute los comandos desde /lib/lsb/init-functions
"en el entorno actual (vea el punto de comando incorporado especial del shell)".
Pero lo más importante, si estás haciendo algo realmente complicado aquí, lo estás haciendo mal. Los guiones de inicio deben ser muy simples y utilitarios. Deben ser guiones en el sentido clásico, no programas. Es mejor absorberlo y crear un script de shell simple que cualquier administrador de sistemas pueda asimilar fácilmente en un vistazo rápido que hacer algo hermoso y diseñado en Python.
Otra consideración a tener en cuenta es systemd
, que puede o no ser la Inicialización del sistema Future Of All en Linux. Bajo systemd, la inicialización se realiza mediante archivos de configuración simples en lugar de scripts, la idea es que todo inicio se ajusta a varios patrones de diseño estándar y realmente solo debería elegir uno. Si su programa usa algo complicado para la inicialización, eso debería salir del script de inicio en sí.