diff options
Diffstat (limited to 'sci-libs/indilib/files/indiserver.sh')
-rw-r--r-- | sci-libs/indilib/files/indiserver.sh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/sci-libs/indilib/files/indiserver.sh b/sci-libs/indilib/files/indiserver.sh new file mode 100644 index 0000000..ddedfdf --- /dev/null +++ b/sci-libs/indilib/files/indiserver.sh @@ -0,0 +1,42 @@ +#!/sbin/runscript + +if [ ! "${INDISERVER_USER}" ]; then + INDISERVER_USER="indiserver" +fi + +description="indiserver - INDI astronomical control library server" +command="/usr/bin/indiserver" +command_args="${INDISERVER_OPTS} ${INDISERVER_DRIVERS}" +pidfile="/var/run/indiserver.pid" +start_stop_daemon_args="--pidfile ${pidfile} --make-pidfile --background --user ${INDISERVER_USER}" + +start_pre() { + IFS=' ' read -ra DRIVER <<< "${INDISERVER_DRIVERS}" + for file in "${DRIVER[@]}"; do + if [ ! -x /usr/bin/"${file}" ]; then + eerror "Driver ${file} not found. Check configuration file." + exit 1 + fi + done + if [ "${INDISERVER_FIFO}" ]; then + INDISERVER_OPTS="-f ${INDISERVER_FIFO} ${INDISERVER_OPTS}" + if [ ! -p "${INDISERVER_FIFO}" ]; then + if ! su -m "${INDISERVER_USER}" -c "/usr/bin/mkfifo \"${INDISERVER_FIFO}\""; then + eerror "Could not create FIFO file in ${INDISERVER_FIFO}!" + eerror "indiserver is started with user ${INDISERVER_USER}" + eerror "Check permissions or unset INDISERVER_FIFO in config." + exit 1 + fi + else + ewarn "Strange. FIFO file ${INDISERVER_FIFO} already exists" + fi + fi + return 0 + } + +stop_post() { + if [ -p "${INDISERVER_FIFO}" ]; then + rm -rf "${INDISERVER_FIFO}" + fi + return 0 + }
\ No newline at end of file |