blob: 20e45827acddf4d4d73b4b337789fda9efe675bc [file] [log] [blame]
--- 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