最後活躍 1 month ago

Anders Ingemann 已修改 12 years ago. 還原成這個修訂版本

1 file changed, 4 insertions, 4 deletions

debian-init.sh

@@ -13,11 +13,11 @@
13 13 # Documentation available at
14 14 # http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html
15 15 # Debian provides some extra functions though
16 - source /lib/lsb/init-functions
16 + . /lib/lsb/init-functions
17 17
18 18
19 19 DAEMON_NAME="generic-prog"
20 - DAEMON_USER="${DAEMON_NAME}"
20 + DAEMON_USER="generic-prog-user"
21 21 DAEMON_PATH="/usr/local/bin/generic-prog"
22 22 DAEMON_OPTS="-c /etc/generic-prog.conf"
23 23 DAEMON_PWD="${PWD}"
@@ -26,7 +26,7 @@ DAEMON_PID="/var/run/${DAEMON_NAME}.pid"
26 26 DAEMON_NICE=0
27 27 DAEMON_LOG='/var/log/generic-prog'
28 28
29 - [ -r "/etc/default/${DAEMON_NAME}" ] && source "/etc/default/${DAEMON_NAME}"
29 + [ -r "/etc/default/${DAEMON_NAME}" ] && . "/etc/default/${DAEMON_NAME}"
30 30
31 31 do_start() {
32 32 local result
@@ -107,4 +107,4 @@ stop) do_stop; exit $? ;;
107 107 restart) do_restart; exit $? ;;
108 108 status) do_status; exit $? ;;
109 109 *) do_usage; exit 1 ;;
110 - esac
110 + esac

Anders Ingemann 已修改 12 years ago. 還原成這個修訂版本

1 file changed, 5 insertions, 1 deletion

debian-init.sh

@@ -24,6 +24,7 @@ DAEMON_PWD="${PWD}"
24 24 DAEMON_DESC=$(get_lsb_header_val $0 "Short-Description")
25 25 DAEMON_PID="/var/run/${DAEMON_NAME}.pid"
26 26 DAEMON_NICE=0
27 + DAEMON_LOG='/var/log/generic-prog'
27 28
28 29 [ -r "/etc/default/${DAEMON_NAME}" ] && source "/etc/default/${DAEMON_NAME}"
29 30
@@ -36,6 +37,9 @@ do_start() {
36 37 result=0
37 38 else
38 39 log_daemon_msg "Starting ${DAEMON_DESC}" "${DAEMON_NAME}"
40 + touch "${DAEMON_LOG}"
41 + chown $DAEMON_USER "${DAEMON_LOG}"
42 + chmod u+rw "${DAEMON_LOG}"
39 43 if [ -z "${DAEMON_USER}" ]; then
40 44 start-stop-daemon --start --quiet --oknodo --background \
41 45 --nicelevel $DAEMON_NICE \
@@ -103,4 +107,4 @@ stop) do_stop; exit $? ;;
103 107 restart) do_restart; exit $? ;;
104 108 status) do_status; exit $? ;;
105 109 *) do_usage; exit 1 ;;
106 - esac
110 + esac

Anders Ingemann 已修改 12 years ago. 還原成這個修訂版本

1 file changed, 41 insertions, 26 deletions

debian-init.sh

@@ -1,18 +1,18 @@
1 - #!/bin/bash -e
1 + #!/bin/sh
2 2 ### BEGIN INIT INFO
3 3 # Provides: generic-prog
4 4 # Required-Start: $local_fs $remote_fs $network
5 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: Generic Prog
9 - # Description: Generic Prog is a generic program to do generic things with
8 + # Short-Description: Generic Program
9 + # Description: Generic Program is a generic program to do generic things with
10 10 ### END INIT INFO
11 11
12 12
13 13 # Documentation available at
14 14 # http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html
15 - # Debian provides some extra function though
15 + # Debian provides some extra functions though
16 16 source /lib/lsb/init-functions
17 17
18 18
@@ -21,41 +21,56 @@ DAEMON_USER="${DAEMON_NAME}"
21 21 DAEMON_PATH="/usr/local/bin/generic-prog"
22 22 DAEMON_OPTS="-c /etc/generic-prog.conf"
23 23 DAEMON_PWD="${PWD}"
24 -
25 - STARTUP_MSG="Starting generic-prog daemon"
26 - SHUTDOWN_MSG="Stopping generic-prog daemon"
27 -
24 + DAEMON_DESC=$(get_lsb_header_val $0 "Short-Description")
28 25 DAEMON_PID="/var/run/${DAEMON_NAME}.pid"
29 26 DAEMON_NICE=0
30 27
31 28 [ -r "/etc/default/${DAEMON_NAME}" ] && source "/etc/default/${DAEMON_NAME}"
32 29
33 -
34 30 do_start() {
35 31 local result
36 - log_daemon_msg "${STARTUP_MSG}" "${DAEMON_NAME}"
37 - if [ -z "${DAEMON_USER}" ]; then
38 - start_daemon -n $DAEMON_NICE -p "${DAEMON_PID}" "${DAEMON_PATH}" $DAEMON_OPTS
39 - result=$?
32 +
33 + pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null
34 + if [ $? -eq 0 ]; then
35 + log_warning_msg "${DAEMON_NAME} is already started"
36 + result=0
40 37 else
41 - start-stop-daemon --start --quiet --oknodo --background \
42 - --nicelevel $DAEMON_NICE \
43 - --chdir "${DAEMON_PWD}" \
44 - --pidfile "${DAEMON_PID}" --make-pidfile \
45 - --chuid "${DAEMON_USER}" \
46 - --exec "${DAEMON_PATH}" -- $DAEMON_OPTS
47 - result=$?
38 + log_daemon_msg "Starting ${DAEMON_DESC}" "${DAEMON_NAME}"
39 + if [ -z "${DAEMON_USER}" ]; then
40 + start-stop-daemon --start --quiet --oknodo --background \
41 + --nicelevel $DAEMON_NICE \
42 + --chdir "${DAEMON_PWD}" \
43 + --pidfile "${DAEMON_PID}" --make-pidfile \
44 + --exec "${DAEMON_PATH}" -- $DAEMON_OPTS
45 + result=$?
46 + else
47 + start-stop-daemon --start --quiet --oknodo --background \
48 + --nicelevel $DAEMON_NICE \
49 + --chdir "${DAEMON_PWD}" \
50 + --pidfile "${DAEMON_PID}" --make-pidfile \
51 + --chuid "${DAEMON_USER}" \
52 + --exec "${DAEMON_PATH}" -- $DAEMON_OPTS
53 + result=$?
54 + fi
55 + log_end_msg $result
48 56 fi
49 - log_end_msg $result
50 57 return $result
51 58 }
52 59
53 60 do_stop() {
54 61 local result
55 - log_daemon_msg "${SHUTDOWN_MSG}" "${DAEMON_NAME}"
56 - killproc -p "${DAEMON_PID}" "${DAEMON_PATH}"
57 - result=$?
58 - log_end_msg $result
62 +
63 + pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null
64 + if [ $? -ne 0 ]; then
65 + log_warning_msg "${DAEMON_NAME} is not started"
66 + result=0
67 + else
68 + log_daemon_msg "Stopping ${DAEMON_DESC}" "${DAEMON_NAME}"
69 + killproc -p "${DAEMON_PID}" "${DAEMON_PATH}"
70 + result=$?
71 + log_end_msg $result
72 + rm "${DAEMON_PID}"
73 + fi
59 74 return $result
60 75 }
61 76
@@ -63,7 +78,7 @@ do_restart() {
63 78 local result
64 79 do_stop
65 80 result=$?
66 - if [ $result = 0]; then
81 + if [ $result = 0 ]; then
67 82 do_start
68 83 result=$?
69 84 fi

Anders Ingemann 已修改 13 years ago. 還原成這個修訂版本

1 file changed, 1 insertion, 2 deletions

debian-init.sh

@@ -37,7 +37,6 @@ do_start() {
37 37 if [ -z "${DAEMON_USER}" ]; then
38 38 start_daemon -n $DAEMON_NICE -p "${DAEMON_PID}" "${DAEMON_PATH}" $DAEMON_OPTS
39 39 result=$?
40 - log_end_msg $result
41 40 else
42 41 start-stop-daemon --start --quiet --oknodo --background \
43 42 --nicelevel $DAEMON_NICE \
@@ -46,8 +45,8 @@ do_start() {
46 45 --chuid "${DAEMON_USER}" \
47 46 --exec "${DAEMON_PATH}" -- $DAEMON_OPTS
48 47 result=$?
49 - log_end_msg $result
50 48 fi
49 + log_end_msg $result
51 50 return $result
52 51 }
53 52

Anders Ingemann 已修改 13 years ago. 還原成這個修訂版本

1 file changed, 1 deletion

debian-init.sh

@@ -26,7 +26,6 @@ STARTUP_MSG="Starting generic-prog daemon"
26 26 SHUTDOWN_MSG="Stopping generic-prog daemon"
27 27
28 28 DAEMON_PID="/var/run/${DAEMON_NAME}.pid"
29 - DAEMON_LOG="/var/log/${DAEMON_NAME}.log"
30 29 DAEMON_NICE=0
31 30
32 31 [ -r "/etc/default/${DAEMON_NAME}" ] && source "/etc/default/${DAEMON_NAME}"

Anders Ingemann 已修改 13 years ago. 還原成這個修訂版本

1 file changed, 1 insertion

debian-init.sh

@@ -44,6 +44,7 @@ do_start() {
44 44 --nicelevel $DAEMON_NICE \
45 45 --chdir "${DAEMON_PWD}" \
46 46 --pidfile "${DAEMON_PID}" --make-pidfile \
47 + --chuid "${DAEMON_USER}" \
47 48 --exec "${DAEMON_PATH}" -- $DAEMON_OPTS
48 49 result=$?
49 50 log_end_msg $result

Anders Ingemann 已修改 13 years ago. 還原成這個修訂版本

1 file changed, 5 insertions, 20 deletions

debian-init.sh

@@ -84,24 +84,9 @@ do_usage() {
84 84 }
85 85
86 86 case "$1" in
87 - start)
88 - do_start
89 - exit "$?"
90 - ;;
91 - stop)
92 - do_stop
93 - exit "$?"
94 - ;;
95 - restart)
96 - do_restart
97 - exit "$?"
98 - ;;
99 - status)
100 - do_status
101 - exit "$?"
102 - ;;
103 - *)
104 - do_usage
105 - exit 1
106 - ;;
87 + start) do_start; exit $? ;;
88 + stop) do_stop; exit $? ;;
89 + restart) do_restart; exit $? ;;
90 + status) do_status; exit $? ;;
91 + *) do_usage; exit 1 ;;
107 92 esac

Anders Ingemann 已修改 13 years ago. 還原成這個修訂版本

1 file changed, 107 insertions

debian-init.sh(檔案已創建)

@@ -0,0 +1,107 @@
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
16 + source /lib/lsb/init-functions
17 +
18 +
19 + DAEMON_NAME="generic-prog"
20 + DAEMON_USER="${DAEMON_NAME}"
21 + DAEMON_PATH="/usr/local/bin/generic-prog"
22 + DAEMON_OPTS="-c /etc/generic-prog.conf"
23 + DAEMON_PWD="${PWD}"
24 +
25 + STARTUP_MSG="Starting generic-prog daemon"
26 + SHUTDOWN_MSG="Stopping generic-prog daemon"
27 +
28 + DAEMON_PID="/var/run/${DAEMON_NAME}.pid"
29 + DAEMON_LOG="/var/log/${DAEMON_NAME}.log"
30 + DAEMON_NICE=0
31 +
32 + [ -r "/etc/default/${DAEMON_NAME}" ] && source "/etc/default/${DAEMON_NAME}"
33 +
34 +
35 + do_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 + --exec "${DAEMON_PATH}" -- $DAEMON_OPTS
48 + result=$?
49 + log_end_msg $result
50 + fi
51 + return $result
52 + }
53 +
54 + do_stop() {
55 + local result
56 + log_daemon_msg "${SHUTDOWN_MSG}" "${DAEMON_NAME}"
57 + killproc -p "${DAEMON_PID}" "${DAEMON_PATH}"
58 + result=$?
59 + log_end_msg $result
60 + return $result
61 + }
62 +
63 + do_restart() {
64 + local result
65 + do_stop
66 + result=$?
67 + if [ $result = 0]; then
68 + do_start
69 + result=$?
70 + fi
71 + return $result
72 + }
73 +
74 + do_status() {
75 + local result
76 + status_of_proc -p "${DAEMON_PID}" "${DAEMON_PATH}" "${DAEMON_NAME}"
77 + result=$?
78 + return $result
79 + }
80 +
81 + do_usage() {
82 + echo $"Usage: $0 {start | stop | restart | status}"
83 + exit 1
84 + }
85 +
86 + case "$1" in
87 + start)
88 + do_start
89 + exit "$?"
90 + ;;
91 + stop)
92 + do_stop
93 + exit "$?"
94 + ;;
95 + restart)
96 + do_restart
97 + exit "$?"
98 + ;;
99 + status)
100 + do_status
101 + exit "$?"
102 + ;;
103 + *)
104 + do_usage
105 + exit 1
106 + ;;
107 + esac
上一頁 下一頁