jika Type=simple dalam file unit Anda, Anda hanya dapat menentukan satu ExecStart, tetapi Anda dapat menambahkan sebanyak ExecStartPre , ExecStartPost , tetapi tidak satu pun dari ini cocok untuk perintah yang berjalan lama, karena dijalankan secara berurutan dan semua yang dimulai pertama dimatikan sebelum memulai yang berikutnya.
Jika Type=oneshot Anda dapat menentukan beberapa ExecStart, mereka berjalan secara serial bukan secara paralel.
Jika yang Anda inginkan adalah menjalankan beberapa unit secara paralel, ada beberapa hal yang dapat Anda lakukan:
Jika berbeda pada 1 parameter
Anda dapat menggunakan unit template, jadi Anda membuat /etc/systemd/system/example@unixlinux.online . CATATAN: (@ penting).
[Unit]
Description=script description %I
[Service]
Type=simple
ExecStart=/script.py %i
Restart=on-failure
[Install]
WantedBy=multi-user.target
Dan kemudian Anda mengeksekusi:
$ systemctl start example@unixlinux.online example@unixlinux.online
atau...
Ketergantungan target
Anda dapat membuat beberapa unit yang tertaut ke satu target:
#/etc/systemd/system/bar.target
[Unit]
Description=bar target
Requires=multi-user.target
After=multi-user.target
AllowIsolate=yes
Dan kemudian Anda tinggal memodifikasi unit .service Anda menjadi WantedBy=bar.target seperti:
#/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
Kemudian Anda cukup mengaktifkan layanan foo yang Anda inginkan secara paralel, dan mulai bilah target seperti ini:
$ systemctl daemon-reload
$ systemctl enable example@unixlinux.online
$ systemctl enable example@unixlinux.online
$ systemctl start bar.target
CATATAN: bahwa ini bekerja dengan semua jenis unit tidak hanya unit template.
Anda dapat menggunakan ExecStartPre atau ExecStartPost untuk salah satu skrip
[Unit]
Description=script description
[Service]
Type=simple
ExecStartPre=/script.py parameters1
ExecStart=/script.py parameters2
Restart=on-failure
[Install]
WantedBy=multi-user.target