master
in 115 lines 2.11 KB
Raw
1 #!/usr/bin/env bash
2 # SPDX-License-Identifier: GPL-3.0-or-later
3 #
4 # Netdata LSB start script
5
6 ### BEGIN INIT INFO
7 # Provides: netdata
8 # Required-Start: $local_fs $remote_fs $network $named $time
9 # Required-Stop: $local_fs $remote_fs $network $named $time
10 # Should-Start: $local_fs $network $named $remote_fs $time $all
11 # Should-Stop: $local_fs $network $named $remote_fs $time $all
12 # Default-Start: 2 3 4 5
13 # Default-Stop: 0 1 6
14 # Short-Description: Start and stop netdata
15 # Description: Controls the main netdata process and all its plugins.
16 ### END INIT INFO
17 #
18 set -e
19 set -u
20 ${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
21
22 DAEMON="netdata"
23 DAEMON_PATH=@sbindir_POST@
24 PIDFILE_PATH=@localstatedir_POST@/run/netdata
25 PIDFILE=$PIDFILE_PATH/$DAEMON.pid
26 DAEMONOPTS="-P $PIDFILE"
27
28 test -x $DAEMON_PATH/$DAEMON || exit 0
29
30 . /lib/lsb/init-functions
31
32 # Safeguard (relative paths, core dumps..)
33 cd /
34 umask 022
35
36 service_start() {
37 if [ ! -d $PIDFILE_PATH ]; then
38 mkdir -p $PIDFILE_PATH
39 fi
40
41 chown @netdata_user_POST@:@netdata_user_POST@ $PIDFILE_PATH
42
43 log_success_msg "Starting netdata"
44 start_daemon -p $PIDFILE $DAEMON_PATH/$DAEMON $DAEMONOPTS
45 RETVAL=$?
46 case "${RETVAL}" in
47 0) log_success_msg "Started netdata" ;;
48 *) log_error_msg "Failed to start netdata" ;;
49 esac
50 return $RETVAL
51 }
52
53 service_stop() {
54 log_success_msg "Stopping netdata"
55 killproc -p ${PIDFILE} $DAEMON_PATH/$DAEMON
56 RETVAL=$?
57 case "${RETVAL}" in
58 0) log_success_msg "Stopped netdata" ;;
59 *) log_error_msg "Failed to stop netdata" ;;
60 esac
61
62 if [ $RETVAL -eq 0 ]; then
63 rm -f ${PIDFILE}
64 fi
65 return $RETVAL
66 }
67
68 condrestart() {
69 if ! service_status > /dev/null; then
70 RETVAL=$1
71 return
72 fi
73
74 service_stop
75 service_start
76 }
77
78 service_status() {
79 pidofproc -p $PIDFILE $DAEMON_PATH/$DAEMON
80 }
81
82
83 #
84 # main()
85 #
86
87 case "${1:-''}" in
88 'start')
89 service_start
90 ;;
91
92 'stop')
93 service_stop
94 ;;
95
96 'restart')
97 service_stop
98 service_start
99 ;;
100
101 'try-restart')
102 condrestart 0
103 ;;
104
105 'force-reload')
106 condrestart 7
107 ;;
108
109 'status')
110 service_status && exit 0 || exit $?
111 ;;
112 *)
113 echo "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
114 exit 1
115 esac