Sfoglia il codice sorgente

Changes for Debian and systemd

John C. Frickson 9 anni fa
parent
commit
4932bbc8ba
7 ha cambiato i file con 71 aggiunte e 30 eliminazioni
  1. 1 5
      .gitignore
  2. 4 2
      build-aux/ax_nagios_get_files
  3. 16 17
      configure
  4. 5 2
      src/nrpe.c
  5. 7 4
      startup/default-service.in
  6. 18 0
      startup/default-socket.in
  7. 20 0
      startup/upstart-init

+ 1 - 5
.gitignore

@@ -3,16 +3,12 @@ config.log
 config.status
 include/config.h
 include/dh.h
-init-script
-init-script.debian
-init-script.suse
+nrpe.spec
 package/solaris/Makefile
 sample-config/nrpe.cfg
-sample-config/nrpe.xinetd
 src/Makefile
 src/check_nrpe
 src/nrpe
-subst
 autom4te.cache/
 nbproject/
 .cproject

+ 4 - 2
build-aux/ax_nagios_get_files

@@ -60,8 +60,7 @@ AS_CASE([$init_type],
 		fi,
 
 	[systemd],
-		src_init=default-service
-		src_inetd=default-service,
+		src_init=default-service,
 
 	[bsd],
 		src_init=bsd-init,
@@ -101,6 +100,9 @@ if test x$src_inetd = x; then
 		[xinetd],
 			src_inetd=default-xinetd,
 
+		[systemd],
+			src_inetd=default-socket,
+
 		[*],
 			src_inetd="unknown"
 	)

+ 16 - 17
configure

@@ -1396,7 +1396,7 @@ Optional Packages:
                           irix, cygwin, aix, hp-ux, etc.)
   --with-dist-type=type   specify distribution type (suse, rh, debian, etc.)
   --with-init-type=type   specify init type (bsd, sysv, systemd, launchd,
-                          smf10, smf11, openrc, etc.)
+                          smf10, smf11, upstart, openrc, etc.)
   --with-inetd-type=type  which super-server the system runs (inetd, xinetd,
                           systemd, launchd, smf10, smf11, etc.)
   --with-pkgsysconfdir=DIR
@@ -2947,7 +2947,7 @@ esac
 			if test "$init_type_wanted" = yes; then
 				if test "$pid1" = "/sbin/init" -o "$pid1" = "/usr/sbin/init"; then
 					if `/sbin/init --version 2>/dev/null | grep "upstart" >/dev/null`; then
-						init_type="sysv"
+						init_type="upstart"
 						init_type_wanted=no
 					elif test -f "/etc/rc"; then
 						init_type="newbsd"
@@ -3014,7 +3014,7 @@ fi
 			inetd_disabled=""
 
 			if test x"$init_type" = "xupstart"; then
-				inetd_type="sysv"
+				inetd_type="upstart"
 			elif test "$opsys" = "osx"; then
 				inetd_type="launchd"
 			fi
@@ -3608,13 +3608,12 @@ case $init_type in #(
 		initname=${initname="$PKG_NAME.xml"}
 		initconfdir=unknown
 		initconf=unknown ;; #(
-  #	[upstart],
-#		initdir=${initdir="/etc/init.d"}
-#		initname=${initname="$PKG_NAME"}
-#		initconfdir=${initconfdir="/etc/default"}
-#		initconf=${initconf="$initconfdir/$PKG_NAME"},
-
-	launchd) :
+  upstart) :
+    initdir=${initdir="/etc/init.d"}
+		initname=${initname="$PKG_NAME"}
+		initconfdir=${initconfdir="/etc/default"}
+		initconf=${initconf="$initconfdir/$PKG_NAME"} ;; #(
+  launchd) :
     initdir=${initdir="/System/Library/LaunchDaemons"}
 		initname=${initname="org.nagios.$PKG_NAME.plist"} ;; #(
   #		initconfdir=${initconfdir="/private/etc"}
@@ -3653,7 +3652,7 @@ case $inetd_type in #(
 		fi
 		inetdname=${inetdname="$PKG_NAME.xml"} ;; #(
   #	[upstart],
-#		inetddir=${inetddir="/etc/init"}
+#		inetddir=${inetddir="/etc/init.d"}
 #		inetdname=${inetdname="$PKG_NAME"},
 
 	launchd) :
@@ -3685,8 +3684,7 @@ case $init_type in #(
 			src_init=default-init
 		fi ;; #(
   systemd) :
-    src_init=default-service
-		src_inetd=default-service ;; #(
+    src_init=default-service ;; #(
   bsd) :
     src_init=bsd-init ;; #(
   newbsd) :
@@ -3698,10 +3696,9 @@ case $init_type in #(
   smf*) :
     src_init="solaris-PKG_NAME.xml"
 		src_inetd="solaris-PKG_NAME.xml" ;; #(
-  #	[upstart],
-#		src_init=default-init,
-
-	launchd) :
+  upstart) :
+    src_init=default-init ;; #(
+  launchd) :
     src_init="mac-org.nagios.PKG_NAME.plist"
 		src_inetd="mac-org.nagios.PKG_NAME.plist" ;; #(
   *) :
@@ -3723,6 +3720,8 @@ if test x$src_inetd = x; then
     src_inetd=default-inetd ;; #(
   xinetd) :
     src_inetd=default-xinetd ;; #(
+  systemd) :
+    src_inetd=default-socket ;; #(
   *) :
     src_inetd="unknown"
 	 ;; #(

+ 5 - 2
src/nrpe.c

@@ -141,7 +141,7 @@ int main(int argc, char **argv)
 	int       x;
 	uint32_t  y;
 	char      buffer[MAX_INPUT_BUFFER];
-
+	sleep(10);
 	init();
 
 	/* process command-line args */
@@ -2582,7 +2582,7 @@ int process_arguments(int argc, char **argv)
 	if (argc < 2)
 		return ERROR;
 
-	snprintf(optchars, MAX_INPUT_BUFFER, "c:hVldi46ns");
+	snprintf(optchars, MAX_INPUT_BUFFER, "c:hVldi46nsf");
 
 	while (1) {
 #ifdef HAVE_GETOPT_LONG
@@ -2638,10 +2638,13 @@ int process_arguments(int argc, char **argv)
 
 		case 's':				/* Argument s to indicate SRC option */
 			use_src = TRUE;
+			have_mode = TRUE;
 			break;
 
 		case 'f':
+			use_inetd = FALSE;
 			no_forking = TRUE;
+			have_mode = TRUE;
 			break;
 
 		default:

+ 7 - 4
startup/default-service.in

@@ -3,16 +3,19 @@ Description=Nagios Remote Program Executor
 Documentation=http://www.nagios.org/documentation
 After=var-run.mount nss-lookup.target network.target local-fs.target time-sync.target
 Before=getty@tty1.service plymouth-quit.service xdm.service
+Conflicts=nrpe.socket
 
 [Install]
 WantedBy=multi-user.target
 
 [Service]
-Type=forking
+Type=simple
 Restart=on-abort
-PIDFile=/var/run/nrpe.pid
-ExecStart=@sbindir@/nrpe -c @pkgsysconfdir@/nrpe.cfg
-ExecStopPost=/bin/rm -f /var/run/nrpe.pid
+PIDFile=@piddir@/nrpe.pid
+RuntimeDirectory=nrpe
+RuntimeMode=0755
+ExecStart=@sbindir@/nrpe -c @pkgsysconfdir@/nrpe.cfg -f
+ExecStopPost=/bin/rm -f @piddir@/nrpe.pid
 TimeoutStopSec=60
 User=@nagios_user@
 Group=@nagios_group@

+ 18 - 0
startup/default-socket.in

@@ -0,0 +1,18 @@
+[Unit]
+Description=Nagios Remote Program Executor
+Documentation=http://www.nagios.org/documentation
+After=var-run.mount nss-lookup.target network.target local-fs.target time-sync.target
+Before=getty@tty1.service plymouth-quit.service xdm.service
+Conflicts=nrpe.service
+
+[Install]
+WantedBy=multi-user.target
+
+[Service]
+Accept=true
+ExecStart=@sbindir@/nrpe -c @pkgsysconfdir@/nrpe.cfg -i
+TimeoutStopSec=60
+User=@nagios_user@
+Group=@nagios_group@
+PrivateTmp=true
+OOMScoreAdjust=-500

+ 20 - 0
startup/upstart-init

@@ -0,0 +1,20 @@
+# nrpe - the Nagios Remote Plugin Executor
+#
+# nrpe is a program that runs plugins on this host
+# and reports the results back to a nagios server
+#
+# Copyright (c) 2016 Nagios(R) Core(TM) Development Team
+
+description		"the Nagios Remote Plugin Executor"
+
+oom score -800
+setgid nagios
+setuid nagios
+
+start on (local-filesystems and net-device-up IFACE!=lo)
+stop on runlevel [!2345]
+
+expect daemon
+respawn
+
+exec /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d