~/.config/systemd/user
私は私のお気に入りのプログラムの夜間イメージを作成するために使用する簡単なシステムサービスとタイマーを持っています。
# ~/.config/systemd/user/kicad-build.service
[Unit]
Description=KiCAD nightly builder
[Service]
Type=simple
StandardOutput=null
ExecStart=/bin/bash /home/jan/kicad-nightly-builder/build.sh
# ~/.config/systemd/user/kicad-build.timer
[Unit]
Description=KiCAD nightly build timer
[Timer]
OnCalendar=daily
Persistent=true
RandomizedDelaySec=7200
[Install]
WantedBy=timers.target
今夜のビルドを必要としないので、タイマーを無効にしたいと思います。
[jan@memory-alpha user]$ systemctl --user stop kicad-build.timer
[jan@memory-alpha user]$ systemctl --user disable kicad-build.timer
Failed to disable unit: Unknown method DisableUnitFilesWithFlagsAndInstallInfo or interface org.freedesktop.systemd1.Manager.
ここで何が起こっているのでしょうか?systemctl
このデバイスを無効にする適切な方法が見つからないのはなぜですか?タイマーはまだアクティブです。
[jan@memory-alpha user]$ systemctl --user status kicad-build.timer
○ kicad-build.timer - KiCAD nightly build timer
Loaded: loaded (/home/jan/.config/systemd/user/kicad-build.timer; enabled; preset: enabled)
Active: inactive (dead) since Sat 2023-03-04 09:54:42 CET; 11min ago
Duration: 1month 2w 5d 13h 3min 15.725s
Trigger: n/a
Triggers: ● kicad-build.service
Jan 13 10:21:26 memory-alpha systemd[901]: Started KiCAD nightly build timer.
Mar 04 09:54:42 memory-alpha systemd[901]: Stopped KiCAD nightly build timer.
追加テスト:
[jan@memory-alpha user]$ gdbus introspect --system --dest org.freedesktop.systemd1 --object-path /org/freedesktop/systemd1 | grep DisableUnit
DisableUnitFiles(in as files,
DisableUnitFilesWithFlags(in as files,
DisableUnitFilesWithFlagsAndInstallInfo(in as files,
[jan@memory-alpha user]$ gdbus introspect --session --dest org.freedesktop.systemd1 --object-path /org/freedesktop/systemd1 | grep DisableUnit
DisableUnitFiles(in as files,
DisableUnitFilesWithFlags(in as files,
明らかに私のシステムセッションには適切な方法がありますが、私のユーザーセッションにはそうではありません。残念ながら、私はD-Busについてこの問題をさらにデバッグするのに十分なことを知りません。どんなアイデアがありますか?
[jan@memory-alpha user]$ uname -a
Linux memory-alpha 6.1.4-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 07 Jan 2023 15:10:07 +0000 x86_64 GNU/Linux
[jan@memory-alpha user]$ systemctl --version
systemd 253 (253-1-arch)
+PAM +AUDIT -SELINUX -APPARMOR -IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY +P11KIT -QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK +XKBCOMMON +UTMP -SYSVINIT default-hierarchy=unified
答え1
システムが systemctl バージョンよりも古い systemd バージョンを実行しています。 (このD-Busメソッドはsystemd v253に追加されました。)
systemctl [--user] daemon-reexec
実行中のsystemdバージョンをアップグレードするために使用されます。