¿Cómo hacer que los procesos de monitorización de systemd se inicien utilizando un script de shell en el archivo de servicio?

¿Cómo hacer que los procesos de monitorización de systemd se inicien utilizando un script de shell en el archivo de servicio?

He escrito un archivo de servicio en Linux que llama a un script que inicia múltiples procesos, uno como principal y otros como secundario.

ARCHIVO DE SERVICIO:

[Unit]
Description=TEST service

Requires=abc.service
Wants=def.service

RefuseManualStop=yes

[Service]
Type=Forking
KillSignal=SIGTERM
# We prefix '-' to tell systemd that ignore the non-zero return values on stop service
ExecStart=-/bin/bash test_abc.sh
ExecStopPost=-/root/.abc/abc_stop.sh
# On reload we just perform restart of service
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
PIDFile=/var/run/abc.pid

[Install]
WantedBy=multi-user.target

Y cuando se inicia el servicio, el estado se muestra a continuación:

[root@CentOS-126 core]# systemctl status abc.service
� abc.service - ABC service
   Loaded: loaded (/usr/lib/systemd/system/abc.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-01-22 14:13:45 IST; 43s ago
  Process: 13286 ExecStopPost=/root/.abc/abc_stop.sh (code=exited, status=0/SUCCESS)
 Main PID: 13691 (abc-00)
   CGroup: /system.slice/abc.service
           ��13691 /usr/sbin/abc -c 0x111 --proc-type=primary
           ��13745 abctm
           ��13756 /usr/sbin/abc -c 0x111 --proc-type=secondary
           ��13776 /usr/sbin/abc -c 0x111 --proc-type=secondary

Como puede ver, el proceso primario es el mismo que el PID PRINCIPAL en el estado. Sin embargo, cuando finalizo el proceso, systemd debería reiniciarlo automáticamente. Cosa que no ocurre en mi caso. Leí en otra respuesta que en caso de type=forking, el MainPID no se tiene en cuenta. Intenté reemplazarlo type=simplepero eso tampoco ayudó. ¡Cualquier ayuda será muy apreciada!

información relacionada