Code

daemon: send stderr of service programs to the syslog
authorJohannes Sixt <j6t@kdbg.org>
Sun, 14 Jun 2009 20:38:51 +0000 (22:38 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 18 Jun 2009 18:38:36 +0000 (11:38 -0700)
commit5d87dd4fcac808fc0f0b993b470644ba7d2d62a2
treed0709bfdeb93ffaa9899d6228f3d57db262b6e8a
parent4f4fa9c228a1ac2854c0814b5b23df43b8d98203
daemon: send stderr of service programs to the syslog

If git-daemon is run with --detach or --inetd, then stderr is explicitly
redirected to /dev/null. But notice that the service programs were spawned
via execl_git_cmd(), in particular, the stderr channel is inherited from
the daemon. This means that errors that the programs wrote to stderr (for
example, via die()), went to /dev/null.

This patch arranges that the daemon does not merely exec the service
program, but forks it and monitors stderr of the child; it writes the
errors that it produces to the daemons log via logerror().

A consequence is that the daemon process remains in memory for the full
duration of the service program, but this cannot be avoided.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
daemon.c