Added systemd support.

This commit is contained in:
Преподобный Ален
2025-05-03 22:06:54 +03:00
parent 0182cb46fd
commit 6c03ba4cd2
2 changed files with 29 additions and 2 deletions

View File

@@ -13,6 +13,7 @@ message(STATUS "Project description: ${PROJECT_DESCRIPTION}")
# Settings
# ----------------------------------------------------------------------------------------------------------------------
set(INSTALL_AS_ROOT ON CACHE BOOL "Install as root")
set(USE_SYSTEMD ON CACHE BOOL "Use systemd")
set(WITH_POSTGRESQL OFF CACHE BOOL "Build with PostgreSQL")
set(WITH_SSL ON CACHE BOOL "Build with SSL")
set(WITH_SQLITE3 OFF CACHE BOOL "Build with Sqlite3")
@@ -303,6 +304,11 @@ install(FILES conf/bitcoin.conf DESTINATION ${INSTALL_PATH}/conf)
install(FILES conf/default.conf DESTINATION ${INSTALL_PATH} RENAME ${PROJECT_NAME}.conf)
if (INSTALL_AS_ROOT)
install(FILES auto/daemon DESTINATION /etc/init.d RENAME ${PROJECT_NAME} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(CODE "execute_process(COMMAND update-rc.d ${PROJECT_NAME} defaults)")
if (USE_SYSTEMD)
install(FILES auto/unit.service DESTINATION /etc/systemd/system RENAME ${PROJECT_NAME}.service PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
install(CODE "execute_process(COMMAND systemctl enable ${PROJECT_NAME}.service)")
else()
install(FILES auto/daemon DESTINATION /etc/init.d RENAME ${PROJECT_NAME} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(CODE "execute_process(COMMAND update-rc.d ${PROJECT_NAME} defaults)")
endif()
endif()

21
auto/unit.service Normal file
View File

@@ -0,0 +1,21 @@
[Unit]
Description=Deal Module
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/dm.pid
# dm will fail to start if /run/dm.pid already exists but has the wrong
# SELinux context. This might happen when running `dm -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /run/dm.pid
ExecStartPre=/usr/sbin/dm -t
ExecStart=/usr/sbin/dm
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=mixed
PrivateTmp=true
[Install]
WantedBy=multi-user.target