@cryptotaxi247 / netdata-1 / commits / d8ef6e009

all startup files use the same pid file; all startup files remove pid file on exit

Costa Tsaousis (ktsaou) committed Sep 11, 2018 at 19:02 UTC d8ef6e00956b76e28b16f7bb30d5747d2968d0d8
4 files changed +17 -3
system/netdata-freebsd.in
+4 -1
@@ -6,7 +6,8 @@
6 name=netdata
7 rcvar=netdata_enable
8
9 -pidfile="@localstatedir_POST@/run/netdata.pid"
9 +piddir="@localstatedir_POST@/run/netdata"
10 +pidfile="${pidfile}/netdata.pid"
11
12 command="@sbindir_POST@/netdata"
13 command_args="-P ${pidfile}"
@@ -23,11 +24,13 @@ savedb_cmd="netdata_savedb"
24
25 netdata_prestart()
26 {
27 + [ ! -d "${piddir}" ] && mkdir -p "${piddir}"
28 return 0
29 }
30
31 netdata_poststop()
32 {
33 + rm "${pidfile}"
34 return 0
35 }
36
system/netdata-init-d.in
+3 -1
@@ -14,7 +14,8 @@
14
15 DAEMON="netdata"
16 DAEMON_PATH=@sbindir_POST@
17 -PIDFILE=@localstatedir_POST@/run/$DAEMON.pid
17 +PIDFILE_PATH=@localstatedir_POST@/run/netdata
18 +PIDFILE=$PIDFILE_PATH/$DAEMON.pid
19 DAEMONOPTS="-P $PIDFILE"
20 STOP_TIMEOUT="60"
21
@@ -25,6 +26,7 @@ LOCKFILE=/var/lock/subsys/$DAEMON
26 service_start()
27 {
28 [ -x $DAEMON_PATH ] || exit 5
29 + [ ! -d $PIDFILE_PATH ] && mkdir -p $PIDFILE_PATH
30 echo -n "Starting $DAEMON..."
31 daemon $DAEMON_PATH/$DAEMON $DAEMONOPTS
32 RETVAL=$?
system/netdata-lsb.in
+6 -1
@@ -20,7 +20,8 @@ ${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
20
21 DAEMON="netdata"
22 DAEMON_PATH=@sbindir_POST@
23 -PIDFILE=@localstatedir_POST@/run/$DAEMON.pid
23 +PIDFILE_PATH=@localstatedir_POST@/run/netdata
24 +PIDFILE=$PIDFILE_PATH/$DAEMON.pid
25 DAEMONOPTS="-P $PIDFILE"
26
27 test -x $DAEMON_PATH/$DAEMON || exit 0
@@ -32,6 +33,10 @@ cd /
33 umask 022
34
35 service_start() {
36 + if [ ! -d $PIDFILE_PATH ]; then
37 + mkdir -p $PIDFILE_PATH
38 + fi
39 +
40 log_daemon_msg "Starting real-time performance monitoring" "netdata"
41 start_daemon -p $PIDFILE $DAEMON_PATH/$DAEMON $DAEMONOPTS
42 RETVAL=$?
system/netdata.service.in
+4
@@ -1,6 +1,8 @@
1 # SPDX-License-Identifier: GPL-3.0+
2 [Unit]
3 Description=Real time performance monitoring
4 +
5 +# append here other services you want netdata to wait for them to start
6 After=network.target httpd.service squid.service nfs-server.service mysqld.service mysql.service named.service postfix.service chronyd.service
7
8 [Service]
@@ -9,9 +11,11 @@ User=netdata
11 Group=netdata
12 RuntimeDirectory=netdata
13 RuntimeDirectoryMode=0775
14 +PIDFile=@localstatedir_POST@/run/netdata/netdata.pid
15 ExecStart=@sbindir_POST@/netdata -P @localstatedir_POST@/run/netdata/netdata.pid -D -W set global 'process scheduling policy' 'keep' -W set global 'OOM score' 'keep'
16 ExecStartPre=/bin/mkdir -p @localstatedir_POST@/cache/netdata
17 ExecStartPre=/bin/chown -R netdata:netdata @localstatedir_POST@/cache/netdata
18 +ExecStopPost=[ -f @localstatedir_POST@/run/netdata/netdata.pid ] && rm @localstatedir_POST@/run/netdata/netdata.pid
19 PermissionsStartOnly=true
20
21 # saving a big db on slow disks may need some time