Pregunta:cómo ejecutar automáticamente un script de Python usando systemd. Cómo crear un servicio systemd propio usando el script de Python. Cómo configurar el script de Python para que se inicie como systemd. ¿Cómo administrar el servicio de Python con systemctl?
Use este tutorial para ejecutar su secuencia de comandos de Python como servicio del sistema en systemd. Puede iniciar, detener o reiniciar fácilmente su script usando el comando systemctl. Esto también permitirá ejecutar automáticamente el script de Python al iniciar el sistema.
Paso 1:aplicación ficticia de Python
En primer lugar, he usado un script ficticio de Python que escucha en un puerto específico. Edite un archivo de Python de la siguiente manera
sudo vi /usr/bin/dummy_service.py
y agregue el siguiente contenido para el maniquí. Puede usar su propia secuencia de comandos de Python según los requisitos.
Python
123456789101112 | #!/usr/bin/python3 import sockets =socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind(("localhost", 9988))s.listen(1) while Verdadero:conn, addr =s.accept() data =conn.recv(1024) conn.close() my_function_that_handles_data(data) |
Paso 2:crear un archivo de servicio
Ahora, cree un archivo de servicio para systemd de la siguiente manera. El archivo debe tener .service extensión en /lib/systemd/system/ directorio
sudo vi /lib/systemd/system/dummy.service
y agregue el siguiente contenido en él. Cambie la ubicación del anuncio del nombre de archivo del script de Python. También actualice la Descripción.
[Unit]
Description=Dummy Service
After=multi-user.target
[email protected]
[Service]
Type=simple
ExecStart=/usr/bin/python3 /usr/bin/dummy_service.py
StandardInput=tty-force
[Install]
WantedBy=multi-user.target
Paso 3:habilite el servicio recién agregado
Su servicio de sistema ha sido agregado a su servicio. Recarguemos el demonio systemctl para leer el archivo nuevo. Debe volver a cargar este demonio cada vez que realice cambios en el archivo .service.
sudo systemctl daemon-reload
Ahora habilite el servicio para que se inicie en el arranque del sistema, también inicie el servicio usando los siguientes comandos.
sudo systemctl enable dummy.service
sudo systemctl start dummy.service
Paso 4:Iniciar/Iniciar/Estatus del nuevo servicio
Finalmente verifique el estado de su servicio con el siguiente comando.
sudo systemctl status dummy.service
Utilice los siguientes comandos para detener, iniciar y reiniciar su manual de servicio.
sudo systemctl stop dummy.service #To stop running service
sudo systemctl start dummy.service #To start running service
sudo systemctl restart dummy.service #To restart running service