lib/pvl/service.sh
author Tero Marttila <tero.marttila@aalto.fi>
Fri, 27 Feb 2015 17:02:13 +0200
changeset 642 c25834508569
parent 633 16eaaf30d218
child 649 88ff10dae514
permissions -rw-r--r--
pvl.dns.zone: fix process_include
633
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     1
service_GETOPTS=''
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     2
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     3
SERVICE_NOOP=
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     4
SERVICE_TYPE=
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     5
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     6
function service_help {
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     7
    echo <<EOM
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     8
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
     9
EOM
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    10
}
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    11
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    12
function service_opt {
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    13
    local opt=$1
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    14
    local optarg="$2"
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    15
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    16
    case $opt in
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    17
        n)  SERVICE=0 ;;
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    18
        *)  return 1
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    19
    esac
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    20
}
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    21
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    22
function service_init {
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    23
    if [ -e /bin/systemctl ]; then
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    24
        SERVICE_TYPE=systemd
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    25
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    26
    elif [ -e /sbin/initctl ]; then
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    27
        SERVICE_TYPE=upstart
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    28
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    29
    else
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    30
        SERVICE_TYPE=service
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    31
    fi
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    32
}
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    33
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    34
function service_status {
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    35
    local service=$1
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    36
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    37
    if [ $SERVICE_TYPE = upstart ]; then
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    38
        cmd_test service $service status | grep -q start
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    39
    else
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    40
        cmd_test service $service status > /dev/null
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    41
    fi
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    42
}
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    43
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    44
function service_restart {
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    45
    local service=$1
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    46
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    47
    cmd service $service restart
16eaaf30d218 lib: fixfix
Tero Marttila <tero.marttila@aalto.fi>
parents:
diff changeset
    48
}