|
@@ -0,0 +1,39 @@
|
|
|
+#!/bin/bash
|
|
|
+
|
|
|
+source /usr/share/yunohost/helpers
|
|
|
+
|
|
|
+#
|
|
|
+# Helper to start/stop/.. a systemd service from a yunohost context,
|
|
|
+# *and* the systemd service itself needs to be able to run yunohost
|
|
|
+# commands.
|
|
|
+#
|
|
|
+# Hence the need to release the lock during the operation
|
|
|
+#
|
|
|
+# usage : ynh_systemctl yolo restart
|
|
|
+#
|
|
|
+function ynh_systemctl()
|
|
|
+{
|
|
|
+ local ACTION="$1"
|
|
|
+ local SERVICE="$2"
|
|
|
+ local LOCKFILE="/var/run/moulinette_yunohost.lock"
|
|
|
+
|
|
|
+ # Launch the action
|
|
|
+ sudo systemctl "$ACTION" "$SERVICE" &
|
|
|
+ local SYSCTLACTION=$!
|
|
|
+
|
|
|
+ # Save and release the lock...
|
|
|
+ cp $LOCKFILE $LOCKFILE.bkp.$$
|
|
|
+ rm $LOCKFILE
|
|
|
+
|
|
|
+ # Wait for the end of the action
|
|
|
+ wait $SYSCTLACTION
|
|
|
+
|
|
|
+ # Make sure the lock is released...
|
|
|
+ while [ -f $LOCKFILE ]
|
|
|
+ do
|
|
|
+ sleep 0.1
|
|
|
+ done
|
|
|
+
|
|
|
+ # Restore the old lock
|
|
|
+ mv $LOCKFILE.bkp.$$ $LOCKFILE
|
|
|
+}
|