<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nl">
		<id>https://wiki.rolandow.com/index.php?action=history&amp;feed=atom&amp;title=Linux_Nagios_Running_Proces</id>
		<title>Linux Nagios Running Proces - Bewerkingsoverzicht</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.rolandow.com/index.php?action=history&amp;feed=atom&amp;title=Linux_Nagios_Running_Proces"/>
		<link rel="alternate" type="text/html" href="https://wiki.rolandow.com/index.php?title=Linux_Nagios_Running_Proces&amp;action=history"/>
		<updated>2026-04-19T05:28:41Z</updated>
		<subtitle>Bewerkingsoverzicht voor deze pagina op de wiki</subtitle>
		<generator>MediaWiki 1.27.3</generator>

	<entry>
		<id>https://wiki.rolandow.com/index.php?title=Linux_Nagios_Running_Proces&amp;diff=99&amp;oldid=prev</id>
		<title>Rolandow: Nieuwe pagina aangemaakt met &#039;= Goal =  Check if a proces is running, on a remote host. This is done by checking a given command against a given PID (or pidfile). Actually it just checks if /proc/&lt;…&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.rolandow.com/index.php?title=Linux_Nagios_Running_Proces&amp;diff=99&amp;oldid=prev"/>
				<updated>2012-06-01T12:11:21Z</updated>
		
		<summary type="html">&lt;p&gt;Nieuwe pagina aangemaakt met &amp;#039;= Goal =  Check if a proces is running, on a remote host. This is done by checking a given command against a given PID (or pidfile). Actually it just checks if /proc/&amp;lt;…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nieuwe pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Goal =&lt;br /&gt;
&lt;br /&gt;
Check if a proces is running, on a remote host. This is done by checking a given command against a given PID (or pidfile). Actually it just checks if /proc/&amp;lt;pid&amp;gt;/cmdline has the command that you check with.&lt;br /&gt;
&lt;br /&gt;
= Bash script =&lt;br /&gt;
&lt;br /&gt;
Script /var/lib/nagios/plugins/check_proc_running&lt;br /&gt;
&lt;br /&gt;
The include of utils.sh makes sure we have the $STATE_OK variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#! /bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Check if specified process is running at specified PID&lt;br /&gt;
#&lt;br /&gt;
# Usage: ./check_proc_running -P &amp;lt;pid&amp;gt; -PF &amp;lt;pidfile&amp;gt; -C &amp;lt;script&amp;gt; -x [exitstatus]&lt;br /&gt;
#&lt;br /&gt;
# Example:&lt;br /&gt;
#  ./check_proc_running -P 16802 -C /home/soapserver/productDaemon.php&lt;br /&gt;
#&lt;br /&gt;
# or:&lt;br /&gt;
#  ./check_proc_running -PF /var/run/stumpel/productDaemon.pid -C /home/soapserver/productDaemon.php&lt;br /&gt;
#&lt;br /&gt;
# Return alternative status when running process is found, for example&lt;br /&gt;
# state critical:&lt;br /&gt;
#&lt;br /&gt;
#  ./check_proc_running -P 16801 -C /home/soapserver/productDaemon.php -x 2&lt;br /&gt;
#&lt;br /&gt;
# Default state is OK when process is running on PID.&lt;br /&gt;
#&lt;br /&gt;
PROGNAME=`/usr/bin/basename $0`&lt;br /&gt;
PROGPATH=`echo $0 | sed -e &amp;#039;s,[\\/][^\\/][^\\/]*$,,&amp;#039;`&lt;br /&gt;
REVISION=&amp;quot;1.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
. $PROGPATH/utils.sh&lt;br /&gt;
&lt;br /&gt;
print_usage() {&lt;br /&gt;
    echo &amp;quot;Usage: $PROGNAME -P pid -C command&amp;quot;&lt;br /&gt;
    echo &amp;quot;Usage: $PROGNAME --help&amp;quot;&lt;br /&gt;
    echo &amp;quot;Usage: $PROGNAME --version&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
print_help() {&lt;br /&gt;
    print_revision $PROGNAME $REVISION&lt;br /&gt;
    echo &amp;quot;&amp;quot;&lt;br /&gt;
    print_usage&lt;br /&gt;
    echo &amp;quot;&amp;quot;&lt;br /&gt;
    echo &amp;quot;Running process checker&amp;quot;&lt;br /&gt;
    echo &amp;quot;&amp;quot;&lt;br /&gt;
    support&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Make sure the correct number of command line&lt;br /&gt;
# arguments have been supplied&lt;br /&gt;
&lt;br /&gt;
if [ $# -lt 4 ]; then&lt;br /&gt;
    print_usage&lt;br /&gt;
    exit $STATE_UNKNOWN&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Grab the command line arguments&lt;br /&gt;
&lt;br /&gt;
exitstatus=$STATE_OK #default&lt;br /&gt;
verbosity=0&lt;br /&gt;
while test -n &amp;quot;$1&amp;quot;; do&lt;br /&gt;
    case &amp;quot;$1&amp;quot; in&lt;br /&gt;
        --help)&lt;br /&gt;
            print_help&lt;br /&gt;
            exit $STATE_OK&lt;br /&gt;
            ;;&lt;br /&gt;
        -h)&lt;br /&gt;
            print_help&lt;br /&gt;
            exit $STATE_OK&lt;br /&gt;
            ;;&lt;br /&gt;
        --version)&lt;br /&gt;
            print_revision $PROGNAME $REVISION&lt;br /&gt;
&lt;br /&gt;
            exit $STATE_OK&lt;br /&gt;
            ;;&lt;br /&gt;
        -V)&lt;br /&gt;
            print_revision $PROGNAME $REVISION&lt;br /&gt;
            exit $STATE_OK&lt;br /&gt;
            ;;&lt;br /&gt;
        --pid)&lt;br /&gt;
            checkpid=$2&lt;br /&gt;
            shift&lt;br /&gt;
            ;;&lt;br /&gt;
        -P)&lt;br /&gt;
            checkpid=$2&lt;br /&gt;
            shift&lt;br /&gt;
            ;;&lt;br /&gt;
        --pidfile)&lt;br /&gt;
            pidfile=$2&lt;br /&gt;
            shift&lt;br /&gt;
            ;;&lt;br /&gt;
        -PF)&lt;br /&gt;
            pidfile=$2&lt;br /&gt;
            shift&lt;br /&gt;
            ;;&lt;br /&gt;
        --command)&lt;br /&gt;
            checkcommand=$2&lt;br /&gt;
            shift&lt;br /&gt;
            ;;&lt;br /&gt;
        -C)&lt;br /&gt;
            checkcommand=$2&lt;br /&gt;
            shift&lt;br /&gt;
            ;;&lt;br /&gt;
        -x)&lt;br /&gt;
            exitstatus=$2&lt;br /&gt;
            shift&lt;br /&gt;
            ;;&lt;br /&gt;
        --exitstatus)&lt;br /&gt;
            exitstatus=$2&lt;br /&gt;
            shift&lt;br /&gt;
            ;;&lt;br /&gt;
        -v)&lt;br /&gt;
            verbosity=$2&lt;br /&gt;
            shift&lt;br /&gt;
            ;;&lt;br /&gt;
        *)&lt;br /&gt;
            echo &amp;quot;Unknown argument: $1&amp;quot;&lt;br /&gt;
            print_usage&lt;br /&gt;
            exit $STATE_UNKNOWN&lt;br /&gt;
            ;;&lt;br /&gt;
    esac&lt;br /&gt;
    shift&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
f_VERB() {&lt;br /&gt;
  if [ &amp;quot;$verbosity&amp;quot; -ge 3 ]; then&lt;br /&gt;
    echo $@&lt;br /&gt;
  fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if [ -n $pidfile ]; then&lt;br /&gt;
  f_VERB &amp;quot;Loading pidfile $pidfile&amp;quot;&lt;br /&gt;
  if [ ! -e $pidfile ]; then&lt;br /&gt;
    echo &amp;quot;Error: file $pidfile does not exist\n&amp;quot;&lt;br /&gt;
    exit $STATE_UNKNOWN&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  checkpid=`cat $pidfile`&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
f_VERB &amp;quot;Checking $checkpid for command $checkcommand&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# if pid not set, exit&lt;br /&gt;
if [ -z $checkpid ]; then&lt;br /&gt;
  echo &amp;quot;Error: PID not given\n&amp;quot;&lt;br /&gt;
  exit $STATE_UNKNOWN&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# if command not set, exit&lt;br /&gt;
if [ -z $checkcommand ]; then&lt;br /&gt;
  echo &amp;quot;Error: command to check not set&amp;quot;&lt;br /&gt;
  exit $STATE_UNKNOWN&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
f_VERB &amp;quot;grep &amp;#039;$checkcommand&amp;#039; /proc/$checkpid/cmdline | wc -l&amp;quot;&lt;br /&gt;
&lt;br /&gt;
is_running=`cat /proc/$checkpid/cmdline | grep $checkcommand | wc -l`&lt;br /&gt;
if [ &amp;quot;$is_running&amp;quot; -ge &amp;quot;1&amp;quot; ]; then&lt;br /&gt;
  echo &amp;quot;$checkcommand is running\n&amp;quot;&lt;br /&gt;
  exit $exitstatus&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$checkcommand is NOT running\n&amp;quot;&lt;br /&gt;
if [ &amp;quot;$exitstatus&amp;quot; -eq &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
  exit $STATE_CRITICAL&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
exit $STATE_OK&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= nrpe_local.cfg =&lt;br /&gt;
&lt;br /&gt;
On the host that runs the processes that need to be checked, the nrpe_local.cfg needs to be configured.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
command[check_stumpel_daemon]=/usr/lib/nagios/plugins/check_proc_running -PF /var/run/stumpel/$ARG1$.pid -C /home/soapserver/htdocs/$ARG1$.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= services.conf =&lt;br /&gt;
&lt;br /&gt;
On the monitoring host a service should be defined. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define service {&lt;br /&gt;
        use                             generic-service&lt;br /&gt;
        host_name                       soap.stumpel.nl&lt;br /&gt;
        service_description             shippingDaemon&lt;br /&gt;
        check_command                   check_nrpe_alt!check_stumpel_daemon!shippingDaemon&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that check_nrpe_alt is being used here to connect to a different port.&lt;/div&gt;</summary>
		<author><name>Rolandow</name></author>	</entry>

	</feed>