* nscd/connections.c (restart): Try to preserve the process name

by reading the /proc/self/exe symlink and using the return name.
	Patch by Jeff Bastian <jbastian@redhat.com>.
This commit is contained in:
Ulrich Drepper 2009-03-16 22:33:01 +00:00
parent 2ca285b098
commit d9822dbe66
2 changed files with 22 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2009-03-16 Ulrich Drepper <drepper@redhat.com>
* nscd/connections.c (restart): Try to preserve the process name
by reading the /proc/self/exe symlink and using the return name.
Patch by Jeff Bastian <jbastian@redhat.com>.
2009-03-15 Ulrich Drepper <drepper@redhat.com>
[BZ #9733]

View File

@ -1418,7 +1418,22 @@ cannot change to old working directory: %s; disabling paranoia mode"),
}
/* The preparations are done. */
execv ("/proc/self/exe", argv);
#ifdef PATH_MAX
char pathbuf[PATH_MAX];
#else
char pathbuf[256];
#endif
/* Try to exec the real nscd program so the process name (as reported
in /proc/PID/status) will be 'nscd', but fall back to /proc/self/exe
if readlink fails */
ssize_t n = readlink ("/proc/self/exe", pathbuf, sizeof (pathbuf) - 1);
if (n == -1)
execv ("/proc/self/exe", argv);
else
{
pathbuf[n] = '\0';
execv (pathbuf, argv);
}
/* If we come here, we will never be able to re-exec. */
dbg_log (_("re-exec failed: %s; disabling paranoia mode"),