archlinux / contrib

Arch contrib scripts
GNU General Public License v2.0
63 stars 18 forks source link

checkservices: Unable to parse pid file for systemd-udevd.service #58

Closed ghost closed 2 years ago

ghost commented 2 years ago

Hello. When running checkservices,I'm getting the following error:

$ sudo checkservices
:: Run pacdiff
:: Reload systemd
:: Services with broken maps files
Error:: Unable to parse pid file for systemd-udevd.service.
Found: 0
:: Services missing on the system bus
Found: 0
:: List failed units

I am certain that I did not get that error before, but I'm unaware of any recent changes that might have prompted this.

I poked around a bit:

$ sudo systemctl show systemd-udevd.service | grep PID
GuessMainPID=yes
MainPID=300
ControlPID=0
ExecMainPID=300

That is as far as I got unfortunately. This might very well be my fault - somehow.

Is this something I can fix or a bug?

Thank you for your time!

furai commented 2 years ago

I've noticed this happening to me as well recently.

ghost commented 2 years ago

I guess something related to udev changed. I'm seeing this on all my machines, including a laptop and a headless media server.

Foxboron commented 2 years ago

Duplicate of https://github.com/archlinux/contrib/issues/44

lahwaacz commented 2 years ago

This is kind of different than getty@tty1.service from #44. checkservices looks for the PID in /sys/fs/cgroup/system.slice/systemd-udevd.service/cgroup.procs which is empty due to Delegate=pids in the systemd-udevd.service unit. So there is a cgroup subhierarchy for systemd-udevd.service and the correct file is /sys/fs/cgroup/system.slice/systemd-udevd.service/udev/cgroup.procs. See https://systemd.io/CGROUP_DELEGATION/ and https://man.archlinux.org/man/systemd.resource-control.5.en