Dear Paul,
Am 29.04.23 um 17:13 schrieb Paul Menzel:
Dear Martin,
Am 29.04.23 um 16:12 schrieb Martin Petzold:
we are building our OS with debootstrap (Debian bullseye). Our image
shall be flashed on embedded devices. In order to get a unique
machine-id we removed '/etc/machine-id' as instructed in [1] and also
removed '/var/lib/dbus/machine-id' as instructed in [2]) from the
golden image.
After we flash the image and boot it, new machine-ids are created and
identical.
However, now we realized that some of our systemd service units added
to '/lib/systemd/system' are enabled and starting on boot. We did not
enable them, we just copied them to that location at the end of our
rootfs build. They are just there to be used in some special test cases.
We already checked '/lib/systemd/system-preset/*'. But there is only
a single file '90-systemd.preset' and there is no rule which matches
our service units.
1. Why are our service units placed in '/lib/systemd/system' enabled?
Sorry, you provide not enough information.
Please provide an example `systemctl status X` and `systemctl cat X`
for service X, that is started but does not. Does that happen with all
services you add?
=========================================
tavla@tavla:~$ sudo systemctl status tavla-test
× tavla-test.service - TAVLA Platform OS Tester Service
Loaded: loaded (/lib/systemd/system/tavla-test.service; enabled;
preset: enabled)
Active: failed (Result: signal) since Sat 2023-04-29 15:52:12
CEST; 17min ago
Process: 388 ExecStart=/opt/tavla/bin/test (code=killed, signal=HUP)
Main PID: 388 (code=killed, signal=HUP)
CPU: 118ms
Apr 29 15:52:12 tavla systemd[1]: Starting tavla-test.service - TAVLA
Platform OS Tester Service...
Apr 29 15:52:12 tavla systemd[1]: tavla-test.service: Main process
exited, code=killed, status=1/HUP
Apr 29 15:52:12 tavla systemd[1]: tavla-test.service: Failed with result
'signal'.
Apr 29 15:52:12 tavla systemd[1]: Failed to start tavla-test.service -
TAVLA Platform OS Tester Service.
=========================================
tavla-test.service is 'enabled' (and started), but I never enabled it.
It was enabled after I removed machine-id and did a reboot. Before that,
it was disabled. The service unit
('/lib/systemd/system/tavla-test.service') was copied to this location
during image build after debootstrap and apt installation of systemd.
Here is the only preset ('90-systemd.preset'):
=========================================
enable remote-fs.target
enable remote-cryptsetup.target
enable machines.target
enable getty@.service
enable systemd-timesyncd.service
enable systemd-networkd.service
enable systemd-network-generator.service
enable systemd-resolved.service
enable systemd-homed.service
enable systemd-userdbd.socket
enable systemd-pstore.service
enable systemd-boot-update.service
disable console-getty.service
disable debug-shell.service
disable halt.target
disable kexec.target
disable poweroff.target
enable reboot.target
disable rescue.target
disable exit.target
disable systemd-networkd-wait-online.service
disable systemd-time-wait-sync.service
disable systemd-boot-check-no-failures.service
disable proc-sys-fs-binfmt_misc.mount
disable syslog.socket
disable systemd-journal-gatewayd.*
disable systemd-journal-remote.*
disable systemd-journal-upload.*
=========================================
Platform:
systemd 252.5-2~bpo11+1 (from bullseye-backports)
systemd-resolved and systemd-networkd with iwd (all from
bullseye-backports)
Custom Debian bullseye (with some packages from bullseye-backports)
Custom Kernel 5.10
U-Boot
[1] https://systemd.io/BUILDING_IMAGES/
[2] https://wiki.debian.org/MachineId
Best regards,
Martin