Última atividade 1 month ago

Revisão bb5b7bdd34ca8fcddd382bcba2dadfcd97bdb155

debian-init.sh Bruto
1#!/bin/bash -e
2### BEGIN INIT INFO
3# Provides: generic-prog
4# Required-Start: $local_fs $remote_fs $network
5# Required-Stop: $local_fs $remote_fs $network
6# Default-Start: 2 3 4 5
7# Default-Stop: 0 1 6
8# Short-Description: Generic Prog
9# Description: Generic Prog is a generic program to do generic things with
10### END INIT INFO
11
12
13# Documentation available at
14# http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html
15# Debian provides some extra function though
16source /lib/lsb/init-functions
17
18
19DAEMON_NAME="generic-prog"
20DAEMON_USER="${DAEMON_NAME}"
21DAEMON_PATH="/usr/local/bin/generic-prog"
22DAEMON_OPTS="-c /etc/generic-prog.conf"
23DAEMON_PWD="${PWD}"
24
25STARTUP_MSG="Starting generic-prog daemon"
26SHUTDOWN_MSG="Stopping generic-prog daemon"
27
28DAEMON_PID="/var/run/${DAEMON_NAME}.pid"
29DAEMON_LOG="/var/log/${DAEMON_NAME}.log"
30DAEMON_NICE=0
31
32[ -r "/etc/default/${DAEMON_NAME}" ] && source "/etc/default/${DAEMON_NAME}"
33
34
35do_start() {
36 local result
37 log_daemon_msg "${STARTUP_MSG}" "${DAEMON_NAME}"
38 if [ -z "${DAEMON_USER}" ]; then
39 start_daemon -n $DAEMON_NICE -p "${DAEMON_PID}" "${DAEMON_PATH}" $DAEMON_OPTS
40 result=$?
41 log_end_msg $result
42 else
43 start-stop-daemon --start --quiet --oknodo --background \
44 --nicelevel $DAEMON_NICE \
45 --chdir "${DAEMON_PWD}" \
46 --pidfile "${DAEMON_PID}" --make-pidfile \
47 --chuid "${DAEMON_USER}" \
48 --exec "${DAEMON_PATH}" -- $DAEMON_OPTS
49 result=$?
50 log_end_msg $result
51 fi
52 return $result
53}
54
55do_stop() {
56 local result
57 log_daemon_msg "${SHUTDOWN_MSG}" "${DAEMON_NAME}"
58 killproc -p "${DAEMON_PID}" "${DAEMON_PATH}"
59 result=$?
60 log_end_msg $result
61 return $result
62}
63
64do_restart() {
65 local result
66 do_stop
67 result=$?
68 if [ $result = 0]; then
69 do_start
70 result=$?
71 fi
72 return $result
73}
74
75do_status() {
76 local result
77 status_of_proc -p "${DAEMON_PID}" "${DAEMON_PATH}" "${DAEMON_NAME}"
78 result=$?
79 return $result
80}
81
82do_usage() {
83 echo $"Usage: $0 {start | stop | restart | status}"
84 exit 1
85}
86
87case "$1" in
88start) do_start; exit $? ;;
89stop) do_stop; exit $? ;;
90restart) do_restart; exit $? ;;
91status) do_status; exit $? ;;
92*) do_usage; exit 1 ;;
93esac
94