diff options
Diffstat (limited to 'add-service')
-rwxr-xr-x | add-service | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/add-service b/add-service index 1b5ac54..26bc04e 100755 --- a/add-service +++ b/add-service @@ -46,6 +46,26 @@ units_to_enable= # units enabled by msec # catch the most common usage. if [ -z "$units" ]; then units="$srv.service" + + # We need to normalise the systemd unit name as the native unit may not have + # the same filename (sans it's .service suffix) as sysvinit script. + # In this case, symlinks are used to mask the sysvinit file, but for enabling + # and disabling units we must use the official name. + SYSTEMUNITDIR=/lib/systemd/system + USERUNITDIR=/etc/systemd/system + RUNTIMEUNITDIR=/run/systemd/system + + searchunit= + if [ -f "$SYSTEMUNITDIR/$units" ]; then + searchunit=$(/usr/bin/readlink "$SYSTEMUNITDIR/$units") + elif [ -f "$USERUNITDIR/$units" ]; then + searchunit=$(/usr/bin/readlink "$USERUNITDIR/$units") + elif [ -f "$RUNTIMEUNITDIR/$units" ]; then + searchunit=$(/usr/bin/readlink "$RUNTIMEUNITDIR/$units") + fi + if [ -n "$searchunit" ]; then + units=$searchunit + fi fi add_service() { |