--- 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 #endif +#if defined(OSsunos) +#include +#endif #include #include @@ -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