]> granicus.if.org Git - icinga2/commitdiff
Unify resources for SysV-Init and systemd.
authorGerd von Egidy <gerd@egidy.de>
Sun, 18 May 2014 20:47:27 +0000 (22:47 +0200)
committerGerd von Egidy <gerd@egidy.de>
Sun, 15 Jun 2014 13:49:13 +0000 (15:49 +0200)
- Move system-specific defines like paths and usernames to /etc/icinga2/sysdefines.conf
  Do not use /etc/sysconfig for this as per suggestion on the systemd mailinglist: it is RedHat-specific
- Use /etc/icinga2/sysdefines.conf in SysV-Init and systemd
- Move both the sources of the SysV-Initscript and the systemd-service definition to etc/initsystem

Refs #4794

Conflicts:
etc/initsystem/icinga2.init.d.cmake

etc/CMakeLists.txt
etc/icinga2/sysdefines.conf.cmake [moved from etc/systemd/icinga2.sysconfig.cmake with 67% similarity]
etc/initsystem/icinga2.init.d.cmake [moved from etc/init.d/icinga2.cmake with 88% similarity]
etc/initsystem/icinga2.service.cmake [moved from etc/systemd/icinga2.service.cmake with 88% similarity]

index 4ae50d2b4f3b9db60c6bf624172b2c195c19b3fa..7f87ba7c8212cb1fa7bfcca6661a765c5dabea56 100644 (file)
@@ -75,6 +75,15 @@ else()
   )
 endif()
 
+if(NOT WIN32)
+    configure_file(icinga2/sysdefines.conf.cmake ${CMAKE_CURRENT_BINARY_DIR}/icinga2/sysdefines.conf @ONLY)
+    install(
+      FILES ${CMAKE_CURRENT_BINARY_DIR}/icinga2/sysdefines.conf
+      DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/icinga2
+      PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+    )
+endif()
+
 if(NOT WIN32)
 
   option (USE_SYSTEMD
@@ -82,25 +91,18 @@ if(NOT WIN32)
 
   if (NOT USE_SYSTEMD)
   
-    configure_file(init.d/icinga2.cmake ${CMAKE_CURRENT_BINARY_DIR}/init.d/icinga2)
+    configure_file(initsystem/icinga2.init.d.cmake ${CMAKE_CURRENT_BINARY_DIR}/initsystem/icinga2)
     install(
-      FILES ${CMAKE_CURRENT_BINARY_DIR}/init.d/icinga2
+      FILES ${CMAKE_CURRENT_BINARY_DIR}/initsystem/icinga2
       DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/init.d
       PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
     )
   else()
-    configure_file(systemd/icinga2.service.cmake ${CMAKE_CURRENT_BINARY_DIR}/systemd/icinga2.service @ONLY)
+    configure_file(initsystem/icinga2.service.cmake ${CMAKE_CURRENT_BINARY_DIR}/initsystem/icinga2.service @ONLY)
     install(
-      FILES ${CMAKE_CURRENT_BINARY_DIR}/systemd/icinga2.service
+      FILES ${CMAKE_CURRENT_BINARY_DIR}/initsystem/icinga2.service
       DESTINATION ${DESTDIR}/usr/lib/systemd/system
-      PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_EXECUTE WORLD_READ
-    )
-
-    configure_file(systemd/icinga2.sysconfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/systemd/icinga2 @ONLY)
-    install(
-      FILES ${CMAKE_CURRENT_BINARY_DIR}/systemd/icinga2
-      DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/sysconfig
-      PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_EXECUTE WORLD_READ
+      PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
     )
   endif()
 endif()
similarity index 67%
rename from etc/systemd/icinga2.sysconfig.cmake
rename to etc/icinga2/sysdefines.conf.cmake
index da0e51c3875257abd1354aec229c59b40b1699ce..4348b4d46f6a56fb11428f47f86c07633df8b435 100644 (file)
@@ -1,6 +1,9 @@
+DAEMON=@CMAKE_INSTALL_FULL_SBINDIR@/icinga2
 ICINGA2_CONFIG_FILE=@CMAKE_INSTALL_FULL_SYSCONFDIR@/icinga2/icinga2.conf
 ICINGA2_STATE_DIR=@CMAKE_INSTALL_FULL_LOCALSTATEDIR@
+ICINGA2_PID_FILE=@CMAKE_INSTALL_FULL_LOCALSTATEDIR@/run/icinga2/icinga2.pid
 ICINGA2_ERROR_LOG=@CMAKE_INSTALL_FULL_LOCALSTATEDIR@/log/icinga2/error.log
+ICINGA2_STARTUP_LOG=@CMAKE_INSTALL_FULL_LOCALSTATEDIR@/log/icinga2/startup.log
 ICINGA2_LOG=@CMAKE_INSTALL_FULL_LOCALSTATEDIR@/log/icinga2/icinga2.log
 ICINGA2_USER=@ICINGA2_USER@
 ICINGA2_GROUP=@ICINGA2_GROUP@
similarity index 88%
rename from etc/init.d/icinga2.cmake
rename to etc/initsystem/icinga2.init.d.cmake
index 007695e636ebf3806f0d442a1c0d0c11aed1e48d..99b41ee0a9d01a02031fe9c64a80752716033c1e 100644 (file)
 # Description:       Icinga 2 is a monitoring and management system for hosts, services and networks.
 ### END INIT INFO
 
-DAEMON=@CMAKE_INSTALL_FULL_SBINDIR@/icinga2
-ICINGA2_CONFIG_FILE=@CMAKE_INSTALL_FULL_SYSCONFDIR@/icinga2/icinga2.conf
-ICINGA2_STATE_DIR=@CMAKE_INSTALL_FULL_LOCALSTATEDIR@
-ICINGA2_PID_FILE=$ICINGA2_STATE_DIR/run/icinga2/icinga2.pid
-ICINGA2_ERROR_LOG=$ICINGA2_STATE_DIR/log/icinga2/error.log
-ICINGA2_STARTUP_LOG=$ICINGA2_STATE_DIR/log/icinga2/startup.log
-ICINGA2_LOG=$ICINGA2_STATE_DIR/log/icinga2/icinga2.log
-ICINGA2_USER=@ICINGA2_USER@
-ICINGA2_GROUP=@ICINGA2_GROUP@
-ICINGA2_COMMAND_USER=@ICINGA2_COMMAND_USER@
-ICINGA2_COMMAND_GROUP=@ICINGA2_COMMAND_GROUP@
+# load system specific defines
+if [ -f @CMAKE_INSTALL_FULL_SYSCONFDIR@/icinga2/sysdefines.conf ]; then
+       . @CMAKE_INSTALL_FULL_SYSCONFDIR@/icinga2/sysdefines.conf
+else
+       echo "Can't load system specific defines from @CMAKE_INSTALL_FULL_SYSCONFDIR@/icinga2/sysdefines.conf."
+       exit 1
+fi
 
 test -x $DAEMON || exit 0
 
similarity index 88%
rename from etc/systemd/icinga2.service.cmake
rename to etc/initsystem/icinga2.service.cmake
index 7fc386bd59cc30b874fc57280a56d18ab0029174..fb049f7377bad98bf1e85c0bbaed4f377aeb8780 100644 (file)
@@ -4,7 +4,7 @@ After=syslog.target postgresql.service mariadb.service
 
 [Service]
 Type=forking
-EnvironmentFile=/etc/sysconfig/icinga2
+EnvironmentFile=@CMAKE_INSTALL_FULL_SYSCONFDIR@/icinga2/sysdefines.conf
 # ExecStartPre=  TODO: execute the mkdir & chown/chmod stuff, ideally in a separate script, used by both init.d and systemd
 ExecStart=@CMAKE_INSTALL_FULL_SBINDIR@/icinga2 -c ${ICINGA2_CONFIG_FILE} -d -e ${ICINGA2_ERROR_LOG} -u ${ICINGA2_USER} -g ${ICINGA2_GROUP}
 PIDFile=@CMAKE_INSTALL_FULL_LOCALSTATEDIR@/run/icinga2/icinga2.pid