A veces, crea un script y luego desea que systemd controle los scripts o, en algunos casos, desea que los scripts se reinicien solos cuando se eliminan por algún motivo.
Systemd en Linux ayuda a configurar servicios que se pueden administrar.
En este artículo, Le mostraremos cómo crear el servicio systemd.
Crear servicio systemd
En general
Simplemente siga los pasos a continuación:
- Puede encontrar el servicio Linux en ejecución en la ruta /etc/systemd/system
cd /etc/systemd/system
- Cree un archivo llamado [servicename.service] y agregue lo siguiente
[Unit]
Description=<description_about_your_service>
[Service]
User=<user_such_as_root>
WorkingDirectory=<directory_of__your_script such as /home/unixcop>
ExecStart=<script_which_needs_to_be_executed>
Restart=always
[Install]
WantedBy=multi-user.target
NOTA :Reemplazar Negrita valores anteriores con los valores de su nuevo servicio que desea crear.
Una unidad de servicio es un archivo con .service El sufijo contiene información sobre un proceso administrado por systemd . Está compuesto por tres secciones principales:
- [Unidad] :esta sección contiene información no relacionada específicamente con el tipo de unidad, como la descripción del servicio
- [Servicio] :contiene información sobre el tipo específico de la unidad, un servicio en este caso
- [Instalar] :Esta sección contiene información sobre la instalación de la unidad
Para proyectos específicos de Python que incluyen un entorno virtual
- Siga los mismos pasos anteriores pero agregue lo siguiente
[Unit]
Description=<description_about_your_project>
[Service]
User=<user_such_as_root>
WorkingDirectory=<path/to/your/project/directory/containing/the/python/script>
ExecStart=Path of virtualenv and your script file name
#Example for ExecStart=/home/user/.virtualenv/bin/python main.py
#replace /home/user/.virtualenv/bin/python with your virtualenv and main.py with your script name
Restart=always
[Install]
WantedBy=multi-user.target
O
[Unit]
Description=<description_about_your_project>
[Service]
User=<user_such_as_root>
WorkingDirectory=<path to your project directory>
ExecStart=/bin/bash -c 'cd /home/unixcop/project/ && source venv/bin/activate && python test.py'
#replace /home/unixcop/project/ with your Path, venv/bin/activate with your source and test.py with your script name
[Install]
WantedBy=multi-user.target
- Después de terminar, vuelva a cargar los archivos de servicio para incluir el nuevo servicio.
sudo systemctl daemon-reload
- Comienza tu nuevo servicio
sudo systemctl start [your_new_service].service
- Verifique el estado de su nuevo servicio, p. ej. (mi nuevo servicio se llama unixcop.service)
sudo systemctl status unixcop.service
- Habilite su servicio en cada reinicio
sudo systemctl enable unixcop.service
- Para deshabilitar su servicio en cada reinicio
sudo systemctl disable unixcop.service
Conclusión
Eso es todo
Ilustramos cómo crear un nuevo servicio systemd en Linux
¡¡Gracias!!