![¿Existe alguna manera de controlar dos servicios systemd instanciados como una sola unidad?](https://rvso.com/image/567638/%C2%BFExiste%20alguna%20manera%20de%20controlar%20dos%20servicios%20systemd%20instanciados%20como%20una%20sola%20unidad%3F.png)
Tengo un par de servicios web de Python que estoy intentando ejecutar en una caja Fedora 15. Los ejecuta Paster y la única diferencia al iniciarlos es el archivo de configuración que leen.
Esto parece una buena opción para los servicios instanciados de systemd, pero me gustaría poder controlarlos como una sola unidad. Un objetivo systemd que requiera ambos servicios parece ser la forma de abordarlo. Iniciar el objetivo inicia ambos servicios, pero detener el objetivo los deja en ejecución.
Aquí está el archivo de servicio:
[Unit]
Description=AUI Instance on Port %i
After=syslog.target
[Service]
WorkingDirectory=/usr/local/share/aui
ExecStart=/opt/cogo/bin/paster serve --log-file=/var/log/aui/%i deploy-%i.ini
Restart=always
RestartSec=2
User=aui
Group=aui
[Install]
WantedBy=multi-user.target
Y aquí está el archivo de destino:
[Unit]
Description=AUI
[email protected]
[email protected]
After=syslog.target
[Install]
WantedBy=multi-user.target
¿Es posible este tipo de agrupación con systemd?
Respuesta1
Considere usar la BindsTo
opción para unir las unidades. La systemd.unit(5)
página del manual lo describe así:
Se une a =
Configura dependencias de requisitos, de estilo muy similar a Requires=, sin embargo, además de este comportamiento, también declara que esta unidad se detiene cuando cualquiera de las unidades enumeradas desaparece repentinamente. Las unidades pueden desaparecer repentina e inesperadamente si un servicio finaliza por su propia elección, se desconecta un dispositivo o se desmonta un punto de montaje sin la participación de systemd.
Lo que parece que debería hacer lo que usted quiere y unir una unidad a la otra para que cada vez que el maestro se detenga, el esclavo también se detenga y viceversa para arrancar.
No olvides que también puedes usar Before
/ After
para especificar el orden en el que deben comenzar si es necesario.