package/pigpio: add sysv and systemd init scripts
authorGrzegorz Blach <grzegorz@blach.pl>
Mon, 7 Sep 2020 09:34:26 +0000 (11:34 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Mon, 7 Sep 2020 19:40:38 +0000 (21:40 +0200)
Signed-off-by: Grzegorz Blach <grzegorz@blach.pl>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/pigpio/S50pigpio [new file with mode: 0644]
package/pigpio/pigpio.mk
package/pigpio/pigpio.service [new file with mode: 0644]

diff --git a/package/pigpio/S50pigpio b/package/pigpio/S50pigpio
new file mode 100644 (file)
index 0000000..8b7b681
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+DAEMON="pigpiod"
+PIDFILE="/var/run/pigpio.pid"
+
+PIGPIOD_ARGS=""
+
+[ -r "/etc/default/pigpio" ] && . "/etc/default/pigpio"
+
+start() {
+       printf 'Starting %s: ' "$DAEMON"
+       start-stop-daemon -S -q -x "/usr/bin/$DAEMON" -- $PIGPIOD_ARGS
+       status=$?
+       if [ "$status" -eq 0 ]; then
+               echo "OK"
+       else
+               echo "FAIL"
+       fi
+       return "$status"
+}
+
+stop() {
+       printf 'Stopping %s: ' "$DAEMON"
+       start-stop-daemon -K -q -p "$PIDFILE"
+       status=$?
+       if [ "$status" -eq 0 ]; then
+               rm -f "$PIDFILE"
+               echo "OK"
+       else
+               echo "FAIL"
+       fi
+       return "$status"
+}
+
+restart() {
+       stop
+       sleep 1
+       start
+}
+
+case "$1" in
+       start|stop|restart)
+               "$1";;
+       reload)
+               # Restart, since there is no true "reload" feature.
+               restart;;
+       *)
+               echo "Usage: $0 {start|stop|restart|reload}"
+               exit 1
+esac
index 9075274de1491004cf2334f4b3591b50243e421e..64d0587077cb3fdd5cd0a80ac0e3f55d6ee52d94 100644 (file)
@@ -38,4 +38,14 @@ define PIGPIO_INSTALL_STAGING_CMDS
        ln -sf libpigpiod_if2.so.1 $(STAGING_DIR)/usr/lib/libpigpiod_if2.so
 endef
 
+define PIGPIO_INSTALL_INIT_SYSV
+       $(INSTALL) -D -m 755 package/pigpio/S50pigpio \
+               $(TARGET_DIR)/etc/init.d/S50pigpio
+endef
+
+define PIGPIO_INSTALL_INIT_SYSTEMD
+       $(INSTALL) -D -m 644 package/pigpio/pigpio.service \
+               $(TARGET_DIR)/usr/lib/systemd/system/pigpio.service
+endef
+
 $(eval $(generic-package))
diff --git a/package/pigpio/pigpio.service b/package/pigpio/pigpio.service
new file mode 100644 (file)
index 0000000..135624c
--- /dev/null
@@ -0,0 +1,10 @@
+[Unit]
+Description=Pigpio daemon
+After=network.target
+
+[Service]
+EnvironmentFile=-/etc/default/pigpio
+ExecStart=/usr/bin/pigpiod -g $PIGPIOD_ARGS
+
+[Install]
+WantedBy=multi-user.target