123456789101112131415161718192021222324252627282930313233343536373839 |
- #!/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
- }
|