Fix for init script for other procs with "telegraf"

The init script fails if another process has the word "telegraf" in
it, for example if you aren running "vi /etc/opt/telegraf/telegraf.conf"
or "tail -f /var/log/telegraf/telegraf.log".  This is because
the "-f" flag to "pgrep" will show processes with the search
string anywhere in the command-line.

This patch turns it around and gets the "ps" output for the process
in the pidfile, and if that line has "telegraf" in it, it considers
it to be running.
This commit is contained in:
Sean Reifschneider 2015-10-15 10:52:08 -06:00
parent 181c3cdc28
commit 0e6b78af94
1 changed files with 5 additions and 2 deletions

View File

@ -59,14 +59,17 @@ function pidofproc() {
echo "Expected three arguments, e.g. $0 -p pidfile daemon-name" echo "Expected three arguments, e.g. $0 -p pidfile daemon-name"
fi fi
pid=`pgrep -f $3` if [ ! -f "$2" ]; then
return 1
fi
local pidfile=`cat $2` local pidfile=`cat $2`
if [ "x$pidfile" == "x" ]; then if [ "x$pidfile" == "x" ]; then
return 1 return 1
fi fi
if [ "x$pid" != "x" -a "$pidfile" == "$pid" ]; then if ps --pid "$pidfile" | grep -q $(basename $3); then
return 0 return 0
fi fi