After switching from sys-fs/eudev to sys-fs/udev I noticed /dev/std{in,out,err} symlinks are missing and some apps creates /dev/stdout and a plain text file. What is the right way to fix this?
I don't see these either with systemd-udev but I do on a systemd machine.
The /dev/{stdin,stdout,stderr} symlinks should be created by the "devfs" init script. This should be present in the "sysinit" runlevel.
(In reply to Mike Gilbert from comment #2) > The /dev/{stdin,stdout,stderr} symlinks should be created by the "devfs" > init script. This should be present in the "sysinit" runlevel. Thanks! I didn't have sys-apps/openrc installed, so I didn't noticed that script.
(In reply to Alex Efros from comment #3) > I didn't have sys-apps/openrc installed, so I didn't noticed that script. Out of curiosity, what service manager are you using if not OpenRC?
(In reply to Mike Gilbert from comment #2) > The /dev/{stdin,stdout,stderr} symlinks should be created by the "devfs" > init script. This should be present in the "sysinit" runlevel. And I was a vicitm of PEBKAC - it's indeed there!
(In reply to Mike Gilbert from comment #4) > (In reply to Alex Efros from comment #3) > > I didn't have sys-apps/openrc installed, so I didn't noticed that script. > > Out of curiosity, what service manager are you using if not OpenRC? I use runit. Works just fine with my Gentoo since 2004, you can find ebuild and init scripts in my overlay "powerman". :) Single script with 320 lines of code is enough to boot all my systems… and it needs to be updated about once per several years (like now, to restore these symlinks in /dev).
Here's the relevant systemd code for reference. https://github.com/systemd/systemd/blob/v249/src/shared/dev-setup.c
And here's the commit that removes the dev_setup call from udevd. It gets called from systemd instead. https://github.com/systemd/systemd/commit/6b2229c6c60d0486f5eb9ed3088f9c780d7c0233