]> git.pld-linux.org Git - packages/SysVinit.git/blame - sysvinit-pidof.patch
- does not require logrotate; rel 19
[packages/SysVinit.git] / sysvinit-pidof.patch
CommitLineData
612af2b6
JB
1--- sysvinit-2.86/src/killall5.c.orig 2004-07-30 14:16:23.000000000 +0200
2+++ sysvinit-2.86/src/killall5.c 2004-12-26 23:05:17.284315424 +0100
3@@ -47,8 +47,9 @@
4
437bcd41 5 /* Info about a process. */
612af2b6
JB
6 typedef struct proc {
7+ char *pathname; /* full path to executable */
8 char *argv0; /* Name as found out from argv[0] */
9- char *argv0base; /* `basename argv[1]` */
10+ char *argv0base; /* `basename argv[0]` */
11 char *argv1; /* Name as found out from argv[1] */
12 char *argv1base; /* `basename argv[1]` */
13 char *statname; /* the statname without braces */
14@@ -191,6 +192,7 @@
437bcd41 15 n = p->next;
612af2b6
JB
16 if (p->argv0) free(p->argv0);
17 if (p->argv1) free(p->argv1);
437bcd41
AM
18+ if (p->pathname) free(p->pathname);
19 free(p);
20 }
21 plist = NULL;
612af2b6 22@@ -309,6 +311,8 @@
437bcd41
AM
23 if (stat(path, &st) == 0) {
24 p->dev = st.st_dev;
25 p->ino = st.st_ino;
26+ p->pathname = (char *)xmalloc(PATH_MAX);
27+ readlink(path, p->pathname, PATH_MAX);
28 }
29
30 /* Link it into the list. */
612af2b6
JB
31@@ -425,6 +429,10 @@
32 strchr(p->argv0, ' '))) {
33 ok += (strcmp(p->statname, s) == 0);
34 }
437bcd41 35+
612af2b6
JB
36+ if (prog[0] == '/' && p->pathname && strcmp(prog, p->pathname))
37+ ok = 0;
38+
39 if (ok) add_pid_to_q(q, p);
40 }
437bcd41 41
This page took 0.078863 seconds and 4 git commands to generate.