|
1 | 1 | #!/bin/sh
|
2 | 2 | ### BEGIN INIT INFO
|
3 |
| -# Provides: Ombi |
4 |
| -# Required-Start: $local_fs $network $remote_fs $syslog |
5 |
| -# Required-Stop: $local_fs $network $remote_fs $syslog |
| 3 | +# Provides: ombi |
| 4 | +# Required-Start: $local_fs $remote_fs $network |
| 5 | +# Required-Stop: $local_fs $remote_fs $network |
6 | 6 | # Default-Start: 2 3 4 5
|
7 | 7 | # Default-Stop: 0 1 6
|
8 |
| -# Short-Description: Start daemon at boot time |
9 |
| -# Description: Enable service provided by daemon. |
| 8 | +# Short-Description: Ombi |
| 9 | +# Description: A personal media assitant. A simple way for shared media users to request and download content |
10 | 10 | ### END INIT INFO
|
11 | 11 |
|
12 |
| -user="ReplaceMe" |
13 |
| -group="ReplaceMe" |
14 |
| -dir="/opt/Ombi" |
15 |
| -cmd="/opt/Ombi/Ombi" |
| 12 | +. /lib/lsb/init-functions |
| 13 | +################################################################################ |
| 14 | +# Update these variables to reflect your system |
| 15 | +################################################################################ |
| 16 | +DAEMON_PWD="/opt/Ombi" |
| 17 | +DAEMON_USER="ReplaceMe" |
| 18 | +DAEMON_NAME="ombi" |
| 19 | +DAEMON_LOG="/var/log/${DAEMON_NAME}.log" |
| 20 | +DAEMON_PATH="${DAEMON_PWD}/Ombi" |
| 21 | +DAEMON_OPTS="--host http://*:5000 --storage ${DAEMON_PWD}" |
| 22 | +DAEMON_DESC=$(get_lsb_header_val $0 "Short-Description") |
| 23 | +DAEMON_PID="/var/run/${DAEMON_NAME}.pid" |
| 24 | +DAEMON_NICE=0 |
16 | 25 |
|
17 |
| -name=`basename $0` |
18 |
| -PIDDIR="/var/run/$name" |
19 |
| -pid_file="/var/run/$name/$name.pid" |
20 |
| -stdout_log="/var/log/$name.log" |
21 |
| -stderr_log="/var/log/$name.err" |
| 26 | +[ -r "/etc/default/${DAEMON_NAME}" ] && . "/etc/default/${DAEMON_NAME}" |
22 | 27 |
|
23 |
| -get_pid() { |
24 |
| - cat "$pid_file" |
| 28 | +do_start() { |
| 29 | + local result |
| 30 | + |
| 31 | + pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null |
| 32 | + if [ $? -eq 0 ]; then |
| 33 | + log_warning_msg "${DAEMON_NAME} is already started" |
| 34 | + result=0 |
| 35 | + else |
| 36 | + log_daemon_msg "Starting ${DAEMON_NAME}" |
| 37 | + touch "${DAEMON_LOG}" |
| 38 | + chown $DAEMON_USER "${DAEMON_LOG}" |
| 39 | + chmod u+rw "${DAEMON_LOG}" |
| 40 | + if [ -z "${DAEMON_USER}" ]; then |
| 41 | + start-stop-daemon --start --quiet --oknodo --background \ |
| 42 | + --nicelevel $DAEMON_NICE \ |
| 43 | + --chdir "${DAEMON_PWD}" \ |
| 44 | + --pidfile "${DAEMON_PID}" --make-pidfile \ |
| 45 | + --startas /bin/bash -- -c "exec ${DAEMON_PATH} ${DAEMON_OPTS} >> ${DAEMON_LOG} 2>&1" |
| 46 | + result=$? |
| 47 | + else |
| 48 | + start-stop-daemon --start --quiet --oknodo --background \ |
| 49 | + --nicelevel $DAEMON_NICE \ |
| 50 | + --chdir "${DAEMON_PWD}" \ |
| 51 | + --pidfile "${DAEMON_PID}" --make-pidfile \ |
| 52 | + --chuid "${DAEMON_USER}" \ |
| 53 | + --startas /bin/bash -- -c "exec ${DAEMON_PATH} ${DAEMON_OPTS} >> ${DAEMON_LOG} 2>&1" |
| 54 | + result=$? |
| 55 | + fi |
| 56 | + log_end_msg $result |
| 57 | + fi |
| 58 | + return $result |
25 | 59 | }
|
26 | 60 |
|
27 |
| -is_running() { |
28 |
| - [ -f "$pid_file" ] && ps -p `get_pid` > /dev/null 2>&1 |
| 61 | +do_stop() { |
| 62 | + local result |
| 63 | + |
| 64 | + pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null |
| 65 | + if [ $? -ne 0 ]; then |
| 66 | + log_warning_msg "${DAEMON_NAME} is not started" |
| 67 | + result=0 |
| 68 | + else |
| 69 | + log_daemon_msg "Stopping ${DAEMON_NAME}" |
| 70 | + killproc -p "${DAEMON_PID}" "${DAEMON_PATH}" |
| 71 | + result=$? |
| 72 | + log_end_msg $result |
| 73 | + rm "${DAEMON_PID}" |
| 74 | + fi |
| 75 | + return $result |
29 | 76 | }
|
30 | 77 |
|
31 |
| -if [ ! -d ${PIDDIR} ]; then |
32 |
| - mkdir -p ${PIDDIR}; chown ${user}:${group} ${PIDDIR}; chmod 0750 ${PIDDIR}; |
33 |
| -fi |
| 78 | +do_restart() { |
| 79 | + local result |
| 80 | + do_stop |
| 81 | + result=$? |
| 82 | + if [ $result = 0 ]; then |
| 83 | + do_start |
| 84 | + result=$? |
| 85 | + fi |
| 86 | + return $result |
| 87 | +} |
34 | 88 |
|
35 |
| -case "$1" in |
36 |
| - start) |
37 |
| - if is_running; then |
38 |
| - echo "Already started" |
39 |
| - else |
40 |
| - echo "Starting $name" |
41 |
| - cd "$dir" |
42 |
| - if [ -z "$user" ]; then |
43 |
| - sudo $cmd >> "$stdout_log" 2>> "$stderr_log" & |
44 |
| - echo $! > "$pid_file" |
45 |
| - else |
46 |
| - sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" & |
47 |
| - sleep 1 # process not always started fast enough |
48 |
| - echo $(pgrep -U "$user" -xf "$cmd") > "$pid_file" |
49 |
| - fi |
50 |
| - echo $! > "$pid_file" |
51 |
| - if ! is_running; then |
52 |
| - echo "Unable to start, see $stdout_log and $stderr_log" |
53 |
| - exit 1 |
54 |
| - fi |
55 |
| - fi |
56 |
| - ;; |
57 |
| - stop) |
58 |
| - if is_running; then |
59 |
| - echo -n "Stopping $name.." |
60 |
| - kill `get_pid` |
61 |
| - for i in 1 2 3 4 5 6 7 8 9 10 |
62 |
| - # for i in `seq 10` |
63 |
| - do |
64 |
| - if ! is_running; then |
65 |
| - break |
66 |
| - fi |
| 89 | +do_status() { |
| 90 | + local result |
| 91 | + status_of_proc -p "${DAEMON_PID}" "${DAEMON_PATH}" "${DAEMON_NAME}" |
| 92 | + result=$? |
| 93 | + return $result |
| 94 | +} |
67 | 95 |
|
68 |
| - echo -n "." |
69 |
| - sleep 1 |
70 |
| - done |
71 |
| - echo |
| 96 | +do_usage() { |
| 97 | + echo $"Usage: $0 {start | stop | restart | status}" |
| 98 | + exit 1 |
| 99 | +} |
72 | 100 |
|
73 |
| - if is_running; then |
74 |
| - echo "Not stopped; may still be shutting down or shutdown may have failed" |
75 |
| - exit 1 |
76 |
| - else |
77 |
| - echo "Stopped" |
78 |
| - if [ -f "$pid_file" ]; then |
79 |
| - rm "$pid_file" |
80 |
| - fi |
81 |
| - fi |
82 |
| - else |
83 |
| - echo "Not running" |
84 |
| - fi |
85 |
| - ;; |
86 |
| - restart) |
87 |
| - $0 stop |
88 |
| - if is_running; then |
89 |
| - echo "Unable to stop, will not attempt to start" |
90 |
| - exit 1 |
91 |
| - fi |
92 |
| - $0 start |
93 |
| - ;; |
94 |
| - status) |
95 |
| - if is_running; then |
96 |
| - echo "Running" |
97 |
| - else |
98 |
| - echo "Stopped" |
99 |
| - exit 1 |
100 |
| - fi |
101 |
| - ;; |
102 |
| - *) |
103 |
| - echo "Usage: $0 {start|stop|restart|status}" |
104 |
| - exit 1 |
105 |
| - ;; |
| 101 | +case "$1" in |
| 102 | +start) do_start; exit $? ;; |
| 103 | +stop) do_stop; exit $? ;; |
| 104 | +restart) do_restart; exit $? ;; |
| 105 | +status) do_status; exit $? ;; |
| 106 | +*) do_usage; exit 1 ;; |
106 | 107 | esac
|
107 |
| - |
108 |
| -exit 0 |
0 commit comments