add systemd service file

This commit is contained in:
Mario Fetka
2026-04-21 18:00:54 +02:00
parent bc7bf62a77
commit 1d81a49de2
5 changed files with 53 additions and 2 deletions

View File

@@ -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}")

View 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)

View File

@@ -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()

View 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

View File

@@ -18,6 +18,6 @@
@MARS_NWE_LOG_DIR@/smart.log {
postrotate
/bin/killall -HUP nwwebui
/bin/killall -HUP smart
endrotate
}