GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo crear un servicio Systemd en Linux

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!!


Linux
  1. Cómo crear un script de un comando de Linux

  2. Cómo crear un intercambio en Linux

  3. Cómo crear un archivo de intercambio en Linux

  4. Linux:¿cómo obtener menos Ttys con Systemd?

  5. Cómo detener el servicio systemd

Cómo crear accesos directos en el escritorio de Linux

Cómo crear un montaje a partir de imágenes en Linux

Cómo crear un alias SSH en Linux

Cómo ejecutar Shell Script como servicio Systemd en Linux

Cómo crear un alias en Linux

Cómo ejecutar Shell Script como servicio SystemD en Linux