Add SysVinit script to cmake

This commit is contained in:
Tasos Sahanidis
2018-05-15 03:54:49 +03:00
parent 7323d8db24
commit b8abe5fb38
2 changed files with 70 additions and 7 deletions
+36
View File
@@ -0,0 +1,36 @@
#!/bin/sh
# Copyright 2017-2018 ckb-next Development Team <[email protected]>
# Distributed under the terms of the GNU General Public License v2
NAME="ckb-next-daemon"
PID="/dev/input/ckb0/pid"
DAEMON="@CMAKE_INSTALL_PREFIX@/bin/ckb-next-daemon"
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting $NAME" "$NAME"
start-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON --background
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping $NAME" "$NAME"
start-stop-daemon --stop --quiet --retry="-QUIT/5/TERM/5/KILL/5" --pidfile $PID --name $NAME
log_end_msg $?
;;
restart)
log_daemon_msg "Restarting $NAME" "$NAME"
start-stop-daemon --stop --quiet --retry="-QUIT/5/TERM/5/KILL/5" --pidfile $PID --name $NAME
start-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON --background
log_end_msg $?
;;
reload)
log_daemon_msg "Reloading $NAME" "$NAME"
start-stop-daemon --stop --signal USR1 --quiet --pidfile $PID --name $NAME
log_end_msg $?
;;
*)
echo "Usage: $1 {start|stop|restart|reload}"
exit 1
esac
+34 -7
View File
@@ -325,12 +325,6 @@ elseif (LINUX)
@ONLY)
if (SAFE_INSTALL)
execute_process(
COMMAND rc-status -a
COMMAND egrep "started"
COMMAND egrep -o "ckb-daemon|ckb-next-daemon"
OUTPUT_VARIABLE daemons
OUTPUT_STRIP_TRAILING_WHITESPACE)
if (daemons)
string(REPLACE "\n" ";" daemons_list "${daemons}")
foreach (daemon IN LISTS daemons_list)
@@ -356,6 +350,27 @@ elseif (LINUX)
endif ()
# A way to check for SysVinit
if (EXISTS "/etc/inittab")
message(STATUS "SysVinit detected")
set(CKB_NEXT_INIT_SYSTEM "SysVinit" CACHE INTERNAL "")
# Generate and import service
message(STATUS "Generating and importing ckb-next-daemon (${CKB_NEXT_INIT_SYSTEM})")
configure_file(
"${ckb-next_SOURCE_DIR}/linux/sysvinit/ckb-next-daemon.in"
"${CMAKE_CURRENT_BINARY_DIR}/service/ckb-next-daemon.sh"
@ONLY)
if (SAFE_INSTALL)
if (EXISTS "/dev/input/ckb0/pid")
message(STATUS "Running ckb-next-daemon detected")
install(CODE "message(STATUS \"${CKB_NEXT_INIT_SYSTEM}: stoppping ${daemon}\")")
install(CODE "execute_process(COMMAND sudo /etc/init.d/ckb-next-daemon.sh stop)")
endif ()
endif ()
endif ()
endif ()
# Declare target's installation paths
@@ -402,9 +417,17 @@ elseif ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "OpenRC")
OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE)
elseif ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "SysVinit")
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/service/ckb-next-daemon.sh"
DESTINATION "/etc/init.d"
PERMISSIONS
OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE)
elseif ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "unknown")
message(WARNING "No supported system service detected.
Supported services are: systemd, launchd, OpenRC, upstart.")
Supported services are: systemd, launchd, OpenRC, upstart, SysVinit.")
endif ()
if (LINUX)
@@ -442,5 +465,9 @@ if (SAFE_INSTALL)
install(CODE "execute_process(COMMAND sudo rc-update add ckb-next-daemon default)")
install(CODE "message(STATUS \"${CKB_NEXT_INIT_SYSTEM}: starting ckb-next-daemon\")")
install(CODE "execute_process(COMMAND sudo rc-service ckb-next-daemon start)")
elseif ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "SysVinit")
# Just running the script should be enough
install(CODE "message(STATUS \"${CKB_NEXT_INIT_SYSTEM}: starting ckb-next-daemon\")")
install(CODE "execute_process(COMMAND sudo /etc/init.d/ckb-next-daemon.sh start)")
endif ()
endif ()