si Type=simple en su archivo de unidad, solo puede especificar un ExecStart, pero puede agregar tantos ExecStartPre , ExecStartPost , pero nada de esto es adecuado para comandos de ejecución prolongada, porque se ejecutan en serie y todo lo que se inicia se elimina antes de iniciar el siguiente.
Si Type=oneshot puede especificar varios ExecStart, se ejecutan en serie, no en paralelo.
Si lo que desea es ejecutar varias unidades en paralelo, hay algunas cosas que puede hacer:
Si difieren en 1 parámetro
Puede usar unidades de plantilla, por lo que crea un /etc/systemd/system/example@unixlinux.online . @ es importante).
[Unit]
Description=script description %I
[Service]
Type=simple
ExecStart=/script.py %i
Restart=on-failure
[Install]
WantedBy=multi-user.target
Y luego tu ejecutivo:
$ systemctl start example@unixlinux.online example@unixlinux.online
o...
Dependencias objetivo
Puede crear varias unidades que se vinculen a un solo objetivo:
#/etc/systemd/system/bar.target
[Unit]
Description=bar target
Requires=multi-user.target
After=multi-user.target
AllowIsolate=yes
Y luego simplemente modifica sus unidades de servicio para que sean WantedBy=bar.target como:
#/etc/systemd/system/example@unixlinux.online
[Unit]
Description=script description %I
[Service]
Type=simple
ExecStart=/script.py %i
Restart=on-failure
[Install]
WantedBy=bar.target
Luego, simplemente habilite los servicios foo que desee en paralelo e inicie el objetivo de la barra de esta manera:
$ systemctl daemon-reload
$ systemctl enable example@unixlinux.online
$ systemctl enable example@unixlinux.online
$ systemctl start bar.target
Puedes usar ExecStartPre o ExecStartPost para uno de los guiones
[Unit]
Description=script description
[Service]
Type=simple
ExecStartPre=/script.py parameters1
ExecStart=/script.py parameters2
Restart=on-failure
[Install]
WantedBy=multi-user.target