mirror of
https://github.com/YunoHost-Apps/hotspot_ynh.git
synced 2024-09-03 19:25:53 +02:00
40 lines
800 B
Text
40 lines
800 B
Text
|
#!/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
|
||
|
}
|