| --- src/start-stop-daemon.c |
| +++ src/start-stop-daemon.c |
| @@ -44,7 +44,7 @@ |
| # define OSLinux |
| #elif defined(__GNU__) |
| # define OSHURD |
| -#elif defined(__sparc__) |
| +#elif defined (__SVR4) && defined (__sun) |
| # define OSsunos |
| #elif defined(OPENBSD) || defined(__OpenBSD__) |
| # define OSOpenBSD |
| @@ -94,6 +94,9 @@ |
| #if defined(OSaix) |
| #include <sys/procfs.h> |
| #endif |
| +#if defined(OSsunos) |
| +#include <procfs.h> |
| +#endif |
| |
| #include <errno.h> |
| #include <stdio.h> |
| @@ -188,7 +191,7 @@ |
| static void do_pidfile(const char *name); |
| static void do_stop(int signal_nr, int quietmode, |
| int *n_killed, int *n_notkilled, int retry_nr); |
| -#if defined(OSLinux) || defined(OShpux) || defined(OSaix) |
| +#if defined(OSLinux) || defined(OShpux) || defined(OSaix) || defined(OSsunos) |
| static int pid_is_exec(pid_t pid, const struct stat *esb); |
| #endif |
| |
| @@ -765,7 +768,7 @@ |
| static void |
| check(pid_t pid) |
| { |
| -#if defined(OSLinux) || defined(OShpux) || defined(OSaix) |
| +#if defined(OSLinux) || defined(OShpux) || defined(OSaix) || defined(OSsunos) |
| if (execname && !pid_is_exec(pid, &exec_stat)) |
| return; |
| #elif defined(OSHURD) || defined(OSFreeBSD) || defined(OSNetBSD) || defined(OSDarwin) |
| @@ -801,7 +804,7 @@ |
| /* WTA: this needs to be an autoconf check for /proc/pid existance. |
| */ |
| |
| -#if defined(OSLinux) || defined (OSsunos) || defined(OSfreebsd) || defined(OSaix) |
| +#if defined(OSLinux) || defined (OSsunos) || defined(OSfreebsd) || defined(OSaix) || defined(OSsunos) |
| static void |
| do_procinit(void) |
| { |
| @@ -1069,7 +1072,7 @@ |
| } |
| #endif /* OShpux */ |
| |
| -#if defined(OSaix) |
| +#if defined(OSaix) || defined(OSsunos) |
| /* max possible pid (signed long) in theory: |
| * 32bit: 2147483647 (10 digits) |
| * 64bit: 9223372036854775807 (19 digits) |
| @@ -1119,7 +1122,7 @@ |
| } |
| return strcmp(name, psi.pr_fname) == 0; |
| } |
| -#endif /* OSaix */ |
| +#endif /* OSaix || OSsunos */ |
| |
| |
| static void |