aboutsummaryrefslogtreecommitdiff
path: root/package/mrp
diff options
context:
space:
mode:
Diffstat (limited to 'package/mrp')
-rw-r--r--package/mrp/S65mrp55
-rw-r--r--package/mrp/mrp.mk10
-rw-r--r--package/mrp/mrp.service10
3 files changed, 75 insertions, 0 deletions
diff --git a/package/mrp/S65mrp b/package/mrp/S65mrp
new file mode 100644
index 0000000000..0ce1f80f81
--- /dev/null
+++ b/package/mrp/S65mrp
@@ -0,0 +1,55 @@
+#!/bin/sh
+#
+# Start mrp
+#
+
+DAEMON="mrp_server"
+
+PIDFILE="/var/run/$DAEMON.pid"
+
+# shellcheck source=/dev/null
+[ -r "/etc/default/mrp_server" ] && . "/etc/default/mrp_server"
+
+start() {
+ printf "Starting mrp daemon: "
+ start-stop-daemon -S -b -q -m -p $PIDFILE \
+ -x /usr/bin/$DAEMON
+ status=$?
+ if [ "$status" -eq 0 ]; then
+ echo "OK"
+ else
+ echo "FAIL"
+ fi
+ return $status
+}
+
+stop() {
+ printf "Stopping mrp 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
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart|reload)
+ stop
+ start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+esac
+
+exit $?
diff --git a/package/mrp/mrp.mk b/package/mrp/mrp.mk
index 4d8a1fc92a..7e31e442ce 100644
--- a/package/mrp/mrp.mk
+++ b/package/mrp/mrp.mk
@@ -10,4 +10,14 @@ MRP_DEPENDENCIES = libev libmnl libnl
MRP_LICENSE = GPL-2.0
MRP_LICENSE_FILES = LICENSE
+define MRP_INSTALL_INIT_SYSV
+ $(INSTALL) -m 755 -D $(MRP_PKGDIR)/S65mrp \
+ $(TARGET_DIR)/etc/init.d/S65mrp
+endef
+
+define MRP_INSTALL_INIT_SYSTEMD
+ $(INSTALL) -D -m 644 $(MRP_PKGDIR)/mrp.service \
+ $(TARGET_DIR)/usr/lib/systemd/system/mrp.service
+endef
+
$(eval $(cmake-package))
diff --git a/package/mrp/mrp.service b/package/mrp/mrp.service
new file mode 100644
index 0000000000..05006a70aa
--- /dev/null
+++ b/package/mrp/mrp.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Media Redundancy Protocol
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/mrp
+Restart=always
+
+[Install]
+WantedBy=multi-user.target