On Mon, 2021-01-25 at 18:33 +0100, Lennart Poettering wrote: > > Consider using IgnoreOnIsolate=. > I fail to make this work. Installed this to the initrd (note the ExecStop "command"): [Unit] Description=NVMe Event Monitor for Automatical Subsystem Connection Documentation=man:nvme-monitor(1) DefaultDependencies=false Conflicts=shutdown.target Requires=systemd-udevd-kernel.socket After=systemd-udevd-kernel.socket Before=sysinit.target systemd-udev-trigger.service nvmefc-boot-connections.service RequiresMountsFor=/sys IgnoreOnIsolate=true [Service] Type=simple ExecStart=/usr/sbin/nvme monitor $NVME_MONITOR_OPTIONS ExecStop=-/usr/bin/systemctl show -p IgnoreOnIsolate %N KillMode=mixed [Install] WantedBy=sysinit.target I verified (in a pre-pivot shell) that systemd had seen the IgnoreOnIsolate property. But when initrd-switch-root.target is isolated, the unit is cleanly stopped nonethless. [ 192.832127] dolin systemd[1]: initrd-switch-root.target: Trying to enqueue job initrd-switch-root.target/start/isolate [ 192.836697] dolin systemd[1]: nvme-monitor.service: Installed new job nvme-monitor.service/stop as 98 [ 193.027182] dolin systemctl[3751]: IgnoreOnIsolate=yes [ 193.029124] dolin systemd[1]: nvme-monitor.service: Changed running -> stop-sigterm [ 193.029353] dolin nvme[768]: monitor_main_loop: monitor: exit signal received [ 193.029535] dolin systemd[1]: Stopping NVMe Event Monitor for Automatical Subsystem Connection... [ 193.065746] dolin systemd[1]: Child 768 (nvme) died (code=exited, status=0/SUCCESS) [ 193.065905] dolin systemd[1]: nvme-monitor.service: Child 768 belongs to nvme-monitor.service [ 193.066073] dolin systemd[1]: nvme-monitor.service: Main process exited, code=exited, status=0/SUCCESS [ 193.066241] dolin systemd[1]: nvme-monitor.service: Changed stop-sigterm -> dead [ 193.066403] dolin systemd[1]: nvme-monitor.service: Job nvme-monitor.service/stop finished, result=done [ 193.066571] dolin systemd[1]: Stopped NVMe Event Monitor for Automatical Subsystem Connection. [ 193.500010] dolin systemd[1]: initrd-switch-root.target: Job initrd-switch-root.target/start finished, result=done [ 193.500188] dolin systemd[1]: Reached target Switch Root. After boot, the service actually remains running when isolating e.g. "rescue.target". But when switching root, it doesn't work. dolin:~/:[141]# systemctl show -p IgnoreOnIsolate nvme-monitor.service IgnoreOnIsolate=yes Tested only with systemd-234 so far. Any ideas what I'm getting wrong? Martin _______________________________________________ systemd-devel mailing list systemd-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/systemd-devel