Linux systemd service

Linux systemd service

ExecStart 順序

  • ExecStart の上から順番に実行される
  • 上のものが完了するのを待ってから後続のが実行される
$ systemctl --version
systemd 257 (257.4-1-arch)
+PAM +AUDIT -SELINUX -APPARMOR -IMA +IPE +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2 +PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK +BTF +XKBCOMMON +UTMP -SYSVINIT +LIBARCHIVE
[Unit]
Description=test1
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=bash -c "sleep 10 && echo 1: ExecStart after sleep 10"
ExecStart=bash -c "sleep 5 && echo 2: ExecStart after sleep 5"

[Install]
WantedBy=multi-user.target
$ sudo journalctl --no-hostname -e -u test1.service
Apr 03 22:16:29 systemd[1]: Starting test1...
Apr 03 22:16:39 bash[570]: 1: ExecStart after sleep 10
Apr 03 22:16:44 bash[614]: 2: ExecStart after sleep 5
Apr 03 22:16:44 systemd[1]: test1.service: Deactivated successfully.
Apr 03 22:16:44 systemd[1]: Finished test1.

After, Before

# systemctl list-dependencies network-online.target --before
network-online.target
● ├─alloy.service
○ ├─apt-daily-upgrade.service
○ ├─apt-daily.service
● ├─cloud-config.service
● ├─cloud-final.service
× ├─podman-auto-update.service
× ├─podman-restart.service
○ ├─rc-local.service
○ └─shutdown.target
○   ├─systemd-soft-reboot.service
○   └─final.target
○     └─systemd-soft-reboot.service
# systemctl list-dependencies network-online.target --after
network-online.target
● ├─cloud-init-network.service
● ├─systemd-networkd-wait-online.service
● └─network.target
●   ├─systemd-networkd.service
●   ├─systemd-resolved.service
●   └─network-pre.target
●     ├─cloud-init-local.service
●     ├─nftables.service
●     └─systemd-network-generator.service
最終更新日