Configurar un servicio simple con systemd

Configurar un servicio simple con systemd

Estamos utilizando el servidor Bamboo para la integración continua con agentes remotos que están construyendo nuestros proyectos. Estos agentes se pueden iniciar con un script de shell simple (que funciona bien). Pero pensé en moverlo aún más y convertirlo en systemduna unidad que hará que el agente se inicie automáticamente después del arranque y permitirá a las personas iniciarlo/detenerlo mediante systemctlcomandos. Entonces esto es lo que he probado.

[Unit]
Description=Atlassian Bamboo Agent
After=syslog.target network.target

[Service]
Type=forking
User=shub
Group=shub
ExecStart=/home/shub/bamboo-agent-home/bin/bamboo-agent.sh start
ExecStop=/home/shub/bamboo-agent-home/bin/bamboo-agent.sh stop

[Install]
WantedBy=multi-user.target

De lo que lo he hecho yo systemctl daemon-reload. El problema es que el agente no se inicia después del reinicio y también actúa de manera extraña (en cierto modo, el servicio se reinicia solo de vez en cuando o no aparece correctamente después systemctl start). Entonces ¿qué estoy haciendo mal? Pensé en cambiar Typea la simpleforma en que quiero que el agente se ejecute como un servicio en segundo plano (y el script en sí ejecuta el agente en segundo plano después de la ejecución).

Respuesta1

Hiciste varias preguntas. Responderé a la pregunta: "¿Por qué mi servicio systemd personalizado no se inicia al arrancar?"

La respuesta es porque no lo has hecho.activadoél. Cuando ejecuta systemctl enable my-service-name, [Install]se actúa sobre el bloque en su archivo de Unidad.

En este caso, le ha indicado a systemd que inicie el servicio como parte del proceso de alcanzar el archivo multi-user.target.

La ejecución enabledel comando creará un enlace simbólico /etc/systemd/system/multi-user.target.wants/y la presencia de ese enlace simbólico es lo que realmente indicará systemdque se inicie el servicio al iniciar.

Sugiero convertir su comentario de "actuar de manera extraña" en una pregunta separada donde se brinden más detalles, tal vez con detalles del diario systemd sobre lo que está sucediendo. (verifique journalctlla salida).

información relacionada