add systemd service file
This commit is contained in:
@@ -115,6 +115,10 @@ find_package(OpenSSL REQUIRED)
|
||||
find_package(PAM REQUIRED)
|
||||
find_package(DL REQUIRED)
|
||||
|
||||
# we want to use systemd, if possible
|
||||
set(SYSTEMD_SERVICES_INSTALL_DIR "" CACHE PATH "Directory for systemd service files")
|
||||
INCLUDE(${CMAKE_MODULE_PATH}/systemdservice.cmake)
|
||||
|
||||
message(STATUS "Mars Nwe version: ${MARS_NWE_VERSION}")
|
||||
message(STATUS "bin: ${CMAKE_INSTALL_FULL_BINDIR}")
|
||||
message(STATUS "sbin: ${CMAKE_INSTALL_FULL_SBINDIR}")
|
||||
|
||||
21
cmake/modules/systemdservice.cmake
Normal file
21
cmake/modules/systemdservice.cmake
Normal file
@@ -0,0 +1,21 @@
|
||||
########
|
||||
# Find systemd service dir
|
||||
|
||||
pkg_check_modules(SYSTEMD "systemd")
|
||||
if (SYSTEMD_FOUND AND "${SYSTEMD_SERVICES_INSTALL_DIR}" STREQUAL "")
|
||||
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE}
|
||||
--variable=systemdsystemunitdir systemd
|
||||
OUTPUT_VARIABLE SYSTEMD_SERVICES_INSTALL_DIR)
|
||||
string(REGEX REPLACE "[ \t\n]+" "" SYSTEMD_SERVICES_INSTALL_DIR
|
||||
"${SYSTEMD_SERVICES_INSTALL_DIR}")
|
||||
elseif (NOT SYSTEMD_FOUND AND SYSTEMD_SERVICES_INSTALL_DIR)
|
||||
message (FATAL_ERROR "Variable SYSTEMD_SERVICES_INSTALL_DIR is\
|
||||
defined, but we can't find systemd using pkg-config")
|
||||
endif()
|
||||
|
||||
if (SYSTEMD_FOUND)
|
||||
set(WITH_SYSTEMD "ON")
|
||||
message(STATUS "systemd services install dir: ${SYSTEMD_SERVICES_INSTALL_DIR}")
|
||||
else()
|
||||
set(WITH_SYSTEMD "OFF")
|
||||
endif (SYSTEMD_FOUND)
|
||||
@@ -16,6 +16,12 @@ configure_file(
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/nwserv.logrotate"
|
||||
IMMEDIATE @ONLY)
|
||||
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/mars-nwe-serv.service.cmake"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mars-nwe-serv.service"
|
||||
@ONLY
|
||||
)
|
||||
|
||||
#################################
|
||||
# Compiler Switches
|
||||
##############
|
||||
@@ -81,4 +87,10 @@ install(FILES prn DESTINATION ${MARS_NWE_INSTALL_FULL_LIBEXECDIR})
|
||||
install(FILES prn-clr DESTINATION ${MARS_NWE_INSTALL_FULL_LIBEXECDIR})
|
||||
install(FILES uptime DESTINATION ${MARS_NWE_INSTALL_FULL_LIBEXECDIR})
|
||||
|
||||
|
||||
if(WITH_SYSTEMD)
|
||||
install(
|
||||
FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mars-nwe-serv.service"
|
||||
DESTINATION "${SYSTEMD_SERVICES_INSTALL_DIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
14
opt/mars-nwe-serv.service.cmake
Normal file
14
opt/mars-nwe-serv.service.cmake
Normal file
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Martin Stover Netware Emulator
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
RuntimeDirectory=mars_nwe
|
||||
RuntimeDirectoryMode=0755
|
||||
PIDFile=@MARS_NWE_PID_DIR@/nwserv.pid
|
||||
ExecStart=@CMAKE_INSTALL_FULL_SBINDIR@/nwserv
|
||||
ExecStop=/bin/kill -TERM $MAINPID
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -18,6 +18,6 @@
|
||||
|
||||
@MARS_NWE_LOG_DIR@/smart.log {
|
||||
postrotate
|
||||
/bin/killall -HUP nwwebui
|
||||
/bin/killall -HUP smart
|
||||
endrotate
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user