systemd iniciar servicio después de un servicio específico [cerrado]


Pregunta general: Cómo se inicia un systemd .servicio después de un particular .el servicio ha comenzado con éxito?

Pregunta específica: ¿Cómo puedo iniciar el sitio web.servicio solo después de mongodb.el servicio ha comenzado? En otras palabras sitio web.el servicio debe depender de mongodb.Servicio.

 45
Author: mpm, 2014-02-17

2 answers

En el .archivo de servicio en la sección [Unidad]:

[Unit]
Description=My Website
After=syslog.target network.target mongodb.service

La parte importante es la mongodb.service

La página de manual lo describe sin embargo debido al formato no es tan claro a primera vista

Systemd.unidad bien formateada

Systemd.unidad-no tan bien formateada

 55
Author: LW001,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-15 17:11:46

After= la dependencia solo es efectiva cuando el servicio que incluye After= y el servicio incluido por After= están programados para iniciarse como parte de su arranque.

Ex:

a.service
[Unit]
After=b.service

De esta manera, si tanto a.service como b.service están habilitados, entonces systemd ordenará b.service después de a.service.

Si no estoy malinterpretando, lo que estás preguntando es cómo comenzar b.service cuando a.service comienza aunque b.service no esté habilitado.

La directiva para esto es Wants= o Requires= bajo [Unit].

website.service
[Unit]
Wants=mongodb.service
After=mongodb.service

La diferencia entre Wants= y Requires= se explica en la página de manual de .unit - http://www.freedesktop.org/software/systemd/man/systemd.unit.html

 19
Author: Umut,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-11 06:58:36