Am 11.08.2014 23:10, schrieb Sven Joachim: > On 2014-08-11 22:48 +0200, Michael Biebl wrote: > >> Am 11.08.2014 21:36, schrieb Sven Joachim: >>> On 2014-08-11 20:56 +0200, Michael Biebl wrote: >>>> This bug is not reproducible here. Neither under systemd nor sysvinit. >>> >>> It only happens under sysvinit without using an initramfs. I suspect >>> the make_static_nodes() function is responsible for that, since it runs >>> before udevd is started and so most device files, including /dev/stdout, >>> do not exist yet. >> >> Could you elaborate? Why does /dev/stdout not exist when >> make_static_nodes() is run? > > I don't know why or who exactly is responsible for creating the > /dev/std{in,err,out} symlinks, but if I boot with init=/bin/bash and > without an initramfs, those symlinks do not exist. >
So, we just debugged this issue, and it is indeed udevd which set's up the /dev/stdout symlink. Typically, this is already created by the initramfs, which runs udevd. In the udev sysv init script, we do run make_static_nodes() before udevd (so any device permissions are applied). It is "kmod static-nodes" which creates /dev/stdout as file, and dumps the output of the static-nodes command there, if that symlink doesn't exist. Sjoerd suggested to explicitly set the output for kmod, i.e. use "kmod static-nodes --output /proc/self/fd/1 | ..." -- Why is it that all of the instruments seeking intelligent life in the universe are pointed away from Earth?
signature.asc
Description: OpenPGP digital signature