Re: /dev/stderr gets unlinked 8]

Denis Vlasenko
2006-03-14T13:36:38Z

On Tuesday 14 March 2006 15:11, Christian wrote:
> > Hi,
> >
> > In the bad days of devfsd, no user program could remove /dev/stderr
> > (bacause fs didn't allow for that).
> >
> > But I switched to udev sometime ago.
> >
> > Today I discovered that my mysqld was happily unlinking it and
> > recreating as regular file in /dev (I pass --log=/dev/stderr
> > to mysqld).
> >
> > Can I make /dev/stderr non-unlink-able?
> > --
> > vda
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
>
> You could run mysql as non-privileged user or try something like
> --log=/proc/self/fd/2

Mysql people are strange. For example, their daemon does not want to die
on SIGTERM, this makes it harder to run it under daemontools.

Also it drops privileges BEFORE it opens logfiles (--log=xxx).
I cannot get it to log stuff on stderr:

echo "* Starting mysqld"
env - \
setuidgid root \
mysqld \
--defaults-file="$PWD/my.cnf" \
--user="$user" \
--datadir="$var/data" \
--tmpdir="$var/tmp" \
--socket="$PWD/mysql.socket" \
--pid-file="$PWD/mysql.pid" \
--skip-name-resolve \
--skip-innodb \
--skip-ndbcluster \
--skip-networking \
--log=/proc/self/fd/2 \
--log-slow-queries=/proc/self/fd/2 \

Those last two options don't work:

mysqld: File '/proc/self/fd/2' not found (Errcode: 13)

Oh well....
--
vda