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