aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd
blob: d1938078f053bf0f8d2203958c4fc6c113786c23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#! /bin/sh
### BEGIN INIT INFO
# Provides:          usbg
# Required-Start:    $local_fs
# Should-Start:
# Required-Stop:     $local_fs
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d
### END INIT INFO

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin

DESC="Load USB gadget schemas"
NAME="usbgx"
DAEMON=/usr/bin/gadget-start
DAEMON_ARGS=""
PIDFILE=/var/run/$NAME.pid

. /etc/init.d/functions || exit 1

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

#
# Function that starts the daemon/service
#
do_start() {
    local status pid

    status=0
    pid=`pidofproc $NAME` || status=$?
    case $status in
        0)
            echo "$DESC already running ($pid)."
            exit 1
            ;;
        *)
            echo "Starting $DESC ..."
            exec $DAEMON $DAEMON_ARGS >/dev/null 2>&1 || status=$?
            echo "ERROR: Failed to start $DESC."
            exit $status
            ;;
    esac
}

#
# Function that stops the daemon/service
#
do_stop() {
    local pid status

    status=0
    pid=`pidofproc $NAME` || status=$?
    case $status in
        0)
            # Exit when fail to stop, the kill would complain when fail
            kill -s 15 $pid >/dev/null && rm -f $PIDFILE && \
                echo "Stopped $DESC ($pid)." || exit $?
            ;;
        *)
            echo "$DESC is not running; none killed." >&2
            ;;
    esac

    return $status
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
    local pid status

    status=0
    # If the daemon can reload its configuration without
    # restarting (for example, when it is sent a SIGHUP),
    # then implement that here.
    pid=`pidofproc $NAME` || status=$?
    case $status in
        0)
            echo "Reloading $DESC ..."
            kill -s 1 $pid || exit $?
            ;;
        *)
            echo "$DESC is not running; none reloaded." >&2
            ;;
    esac
    exit $status
}


#
# Function that shows the daemon/service status
#
status_of_proc () {
    local pid status

    status=0
    # pidof output null when no program is running, so no "2>/dev/null".
    pid=`pidofproc $NAME` || status=$?
    case $status in
        0)
            echo "$DESC is running ($pid)."
            exit 0
            ;;
        *)
            echo "$DESC is not running." >&2
            exit $status
            ;;
    esac
}

case "$1" in
    start)
        do_start
        ;;
    stop)
        do_stop || exit $?
        ;;
    status)
        status_of_proc
        ;;
    restart)
        # Always start the service regardless the status of do_stop
        do_stop
        do_start
        ;;
    try-restart|force-reload)
        do_stop && do_start
        ;;
    *)
        echo "Usage: $0 {start|stop|status|restart|try-restart|force-reload}" >&2
        exit 3
        ;;
esac