¿Cómo puedo hacer que Debian ejecute el script m python al inicio?

¿Cómo puedo hacer que Debian ejecute el script m python al inicio?

Tengo este script en mi carpeta de inicio (pi): server.py.

¿Cómo podría hacer que Debian ejecute este script al inicio para no tener que iniciar sesión y ejecutarlo manualmente?

Respuesta1

En el momento en que se escribió esta respuesta por primera vez, Debian (tal como se instala de forma predeterminada) usaba scripts rc "SysV" con el start-stop-daemonbinario. Había un script de ejemplo, en el archivo /etc/init.d/skeleton, que se podía utilizar como base para el script rc. Una vez que uno tenía su script rc y estaba marcado como ejecutable, el update-rc.dcomando podía usarse para agregarlo a los niveles de ejecución deseados.

Con el paso de los años las cosas han ido cambiando. En 2014, en particular, cambiaron dos cosas:

  • El /etc/init.d/skeletonscript fue reemplazado por el script de ejemplo en la init-d-scriptpágina del manual (5), que más tarde en 2018 se convirtió en elsolobase disponible cuando /etc/init.d/skeletonse eliminó por completo. El contenido del esqueleto también cambió significativamente, ya no es necesario que las personas escriban llamadas start-stop-daemono, de hecho, escriban mucho más que algunas asignaciones variables. (Verhttps://unix.stackexchange.com/a/480897/5132.)
  • El valor predeterminado instalado cambió a systemd y, en su lugar, había que escribir archivos de unidades de servicio systemd (que no tenían que estar marcados como ejecutables) y habilitarlos con systemctl enable. Sin embargo, no había ningún archivo de unidad de ejemplo. (Verhttps://github.com/systemd/systemd/issues/10572.)

Entonces, a partir de 2018, debe escribir un archivo de unidad de servicio systemd que (como mínimo) nombre su script (usando un nombre de ruta absoluto) en una ExecStartconfiguración. Es posible que desee, aunque la pregunta no especifica una forma u otra, utilizar una Userconfiguración para que el script se ejecute bajo los auspicios de su cuenta de usuario y no de la del superusuario. Y túpodría, nuevamente dependiendo de cosas no especificadas en la pregunta, es necesario coordinar el orden relativo de invocación de su script y el montaje (automático) de su directorio de inicio si está montado por separado.

Respuesta2

Poner su -c 'SCRIPT' USERen /etc/rc.local.

información relacionada