
Linux Ubuntu 14.04 Tiene un script en ~/app/serve.py
Necesito ejecutarlo en esta carpeta. En concha puedo hacer
> cd ~/app && python serve.py
y ejecuta un servidor
Es necesario ejecutarlo en servidores que arrancan en segundo plano. Intenté agregar este comando cd ~/app && python serve.py ~
en etc/rc.local (y etc/init.d/rc.local) pero no se inicia.
¿Qué estoy haciendo mal?
Respuesta1
En lugar de agregar cd ~/app && python serve.py
/etc/rc.local, intente ingresar la ruta completa. Espera que el proceso de inicio sepa que ~ es su directorio de inicio de alguna manera, pero init comienza como root. Debido a que init comienza como root, busca /
el directorio de la aplicación, no su directorio de inicio. Deshágase del ~ utilizando la ruta a su directorio de inicio.
Intente agregar /home/whitecolor/app/serve.py
a /etc/rc.local
. ( pwd
para encontrar el directorio de su ruta). Deshágase del python
frente de su secuencia de comandos server.py agregándolo #!/usr/bin/python
en la parte superior de su secuencia de comandos. (escriba a which python
para encontrar la ruta en caso de que no esté instalado en el lugar habitual)
Editar: Dijiste "ejecutar en segundo plano" y me lo perdí. Para ejecutar un comando en segundo plano, agregue un &
después del comando. Entonces, para poner en segundo plano el comando anterior: /home/whitecolor/app/serve.py &
Init generalmente no necesita el símbolo de fondo para iniciar un trabajo y ejecutarlo en segundo plano.
La excelente sugerencia de DrDR no necesitaría el mismo &
tratamiento después del comando en el inicio cron, ya que se ejecutan en segundo plano de forma predeterminada.
Respuesta2
Nunca tuve la necesidad de probar esto, pero aparentemente los scripts se pueden ejecutar al iniciar el sistema mediante cron agregando una línea similar a la que comienza con @reboot a continuación.
#m h dom mon dow command
1 * * * * someHourlyCommand
@reboot python /home/<username>/app/serve.py
Tenga en cuenta que cambié ligeramente el comando para eliminar el cd en el directorio. Su situación puede ser diferente, así que haga lo que funcione para usted.