[Nagiosplug-checkins] CVS: nagiosplug/plugins check_procs.c,1.16,1.17
Karl DeBisschop
kdebisschop at users.sourceforge.net
Thu Aug 7 05:37:06 CEST 2003
Update of /cvsroot/nagiosplug/nagiosplug/plugins
In directory sc8-pr-cvs1:/tmp/cvs-serv1028
Modified Files:
check_procs.c
Log Message:
markup for translation
Index: check_procs.c
===================================================================
RCS file: /cvsroot/nagiosplug/nagiosplug/plugins/check_procs.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -r1.16 -r1.17
*** check_procs.c 3 Jul 2003 16:49:14 -0000 1.16
--- check_procs.c 7 Aug 2003 12:36:45 -0000 1.17
***************
*** 1,113 ****
/******************************************************************************
- *
- * CHECK_PROCS.C
- *
- * Program: Process plugin for Nagios
- * License: GPL
- * Copyright (c) 1999 Ethan Galstad (nagios at nagios.org)
- *
- * $Id$
- *
- * Description:
- *
- * This plugin checks the number of currently running processes and
- * generates WARNING or CRITICAL states if the process count is outside
- * the specified threshold ranges. The process count can be filtered by
- * process owner, parent process PID, current state (e.g., 'Z'), or may
- * be the total number of running processes
- *
- * License Information:
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- ******************************************************************************/
-
- const char *progname = "check_procs";
- #define REVISION "$Revision$"
- #define COPYRIGHT "1999-2002"
- #define AUTHOR "Ethan Galstad"
- #define EMAIL "nagios at nagios.org"
- #define SUMMARY "\
- Checks all processes and generates WARNING or CRITICAL states if the specified\n\
- metric is outside the required threshold ranges. The metric defaults to number\n\
- of processes. Search filters can be applied to limit the processes to check.\n"
! #define OPTIONS "\
! -w <range> -c <range> [-m metric]\n\
! [-s state] [-p ppid] [-u user] [-r rss] [-z vsz] [-P %cpu]\n\
! [-a argument-array] [-C command] [-v]"
! #define LONGOPTIONS "\
! Required Arguments:\n\
! -w, --warning=RANGE\n\
! Generate warning state if metric is outside this range\n\
! -c, --critical=RANGE\n\
! Generate critical state if metric is outside this range\n\
! Optional Arguments:\n\
! -m, --metric=TYPE\n\
! Check thresholds against metric. Valid types:\n\
! PROCS - number of processes (default)\n\
! VSZ - virtual memory size\n\
! RSS - resident set memory size\n\
! CPU - percentage cpu\n\
! -v, --verbose\n\
! Extra information. Up to 3 verbosity levels\n\
! Optional Filters:\n\
! -s, --state=STATUSFLAGS\n\
! Only scan for processes that have, in the output of `ps`, one or\n\
! more of the status flags you specify (for example R, Z, S, RS,\n\
! RSZDT, plus others based on the output of your 'ps' command).\n\
! -p, --ppid=PPID\n\
! Only scan for children of the parent process ID indicated.\n\
! -z, --vsz=VSZ\n\
! Only scan for processes with vsz higher than indicated.\n\
! -r, --rss=RSS\n\
! Only scan for processes with rss higher than indicated.\n\
! -P, --pcpu=PCPU\n\
! Only scan for processes with pcpu higher than indicated.\n\
! -u, --user=USER\n\
! Only scan for processes with user name or ID indicated.\n\
! -a, --argument-array=STRING\n\
! Only scan for processes with args that contain STRING.\n\
! -C, --command=COMMAND\n\
! Only scan for exact matches to the named COMMAND.\n\
! \n\
! RANGEs are specified 'min:max' or 'min:' or ':max' (or 'max'). If\n\
! specified 'max:min', a warning status will be generated if the\n\
! count is inside the specified range\n"
! #define EXAMPLES "\
! check_procs -w 2:2 -c 2:1024 -C portsentry\n\
! Warning if not two processes with command name portsentry. Critical\n\
! if < 2 or > 1024 processes\n\
! check_procs -w 10 -a '/usr/local/bin/perl' -u root\n\
! Warning alert if > 10 processes with command arguments containing \n\
! '/usr/local/bin/perl' and owned by root\n\
! check_procs -w 50000 -c 100000 --metric=VSZ\n\
! Alert if vsz of any processes over 50K or 100K\n"
- #include "config.h"
- #include <pwd.h>
#include "common.h"
#include "popen.h"
#include "utils.h"
int process_arguments (int, char **);
int validate_arguments (void);
- void print_usage (void);
- void print_help (void);
int check_thresholds (int);
int wmax = -1;
--- 1,35 ----
/******************************************************************************
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation; either version 2 of the License, or
! (at your option) any later version.
!
! This program is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with this program; if not, write to the Free Software
! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
! ******************************************************************************/
! const char *progname = "check_procs";
! const char *revision = "$Revision$";
! const char *copyright = "2000-2003";
! const char *email = "nagiosplug-devel at lists.sourceforge.net";
#include "common.h"
#include "popen.h"
#include "utils.h"
+ #include <pwd.h>
int process_arguments (int, char **);
int validate_arguments (void);
int check_thresholds (int);
+ void print_help (void);
+ void print_usage (void);
int wmax = -1;
***************
*** 148,151 ****
--- 70,78 ----
char tmp[MAX_INPUT_BUFFER];
+
+
+
+
+
int
main (int argc, char **argv)
***************
*** 171,175 ****
int warn = 0; /* number of processes in warn state */
int crit = 0; /* number of processes in crit state */
! int i;
int result = STATE_UNKNOWN;
--- 98,102 ----
int warn = 0; /* number of processes in warn state */
int crit = 0; /* number of processes in crit state */
! int i = 0;
int result = STATE_UNKNOWN;
***************
*** 179,190 ****
if (process_arguments (argc, argv) == ERROR)
! usage ("Unable to parse command line\n");
if (verbose >= 2)
! printf ("CMD: %s\n", PS_COMMAND);
child_process = spopen (PS_COMMAND);
if (child_process == NULL) {
! printf ("Could not open pipe: %s\n", PS_COMMAND);
return STATE_UNKNOWN;
}
--- 106,117 ----
if (process_arguments (argc, argv) == ERROR)
! usage (_("Unable to parse command line\n"));
if (verbose >= 2)
! printf (_("CMD: %s\n"), PS_COMMAND);
child_process = spopen (PS_COMMAND);
if (child_process == NULL) {
! printf (_("Could not open pipe: %s\n"), PS_COMMAND);
return STATE_UNKNOWN;
}
***************
*** 192,202 ****
child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r");
if (child_stderr == NULL)
! printf ("Could not open stderr for %s\n", PS_COMMAND);
fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process);
while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) {
! strcpy(procprog,"");
! asprintf(&procargs,"");
cols = sscanf (input_buffer, PS_FORMAT, PS_VARLIST);
--- 119,129 ----
child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r");
if (child_stderr == NULL)
! printf (_("Could not open stderr for %s\n"), PS_COMMAND);
fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process);
while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) {
! strcpy (procprog, "");
! asprintf (&procargs, "%s", "");
cols = sscanf (input_buffer, PS_FORMAT, PS_VARLIST);
***************
*** 271,275 ****
/* This should not happen */
else if (verbose) {
! printf("Not parseable: %s", input_buffer);
}
}
--- 198,202 ----
/* This should not happen */
else if (verbose) {
! printf(_("Not parseable: %s"), input_buffer);
}
}
***************
*** 278,284 ****
while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr)) {
if (verbose)
! printf ("STDERR: %s", input_buffer);
result = max_state (result, STATE_WARNING);
! printf ("System call sent warnings to stderr\n");
}
--- 205,211 ----
while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr)) {
if (verbose)
! printf (_("STDERR: %s"), input_buffer);
result = max_state (result, STATE_WARNING);
! printf (_("System call sent warnings to stderr\n"));
}
***************
*** 287,296 ****
/* close the pipe */
if (spclose (child_process)) {
! printf ("System call returned nonzero status\n");
result = max_state (result, STATE_WARNING);
}
if (found == 0) { /* no process lines parsed so return STATE_UNKNOWN */
! printf ("Unable to read output\n");
return result;
}
--- 214,223 ----
/* close the pipe */
if (spclose (child_process)) {
! printf (_("System call returned nonzero status\n"));
result = max_state (result, STATE_WARNING);
}
if (found == 0) { /* no process lines parsed so return STATE_UNKNOWN */
! printf (_("Unable to read output\n"));
return result;
}
***************
*** 305,316 ****
if ( result == STATE_OK ) {
! printf ("%s OK: %d process%s",
metric_name, procs, ( procs != 1 ? "es" : "") );
} else if (result == STATE_WARNING) {
if ( metric == METRIC_PROCS ) {
! printf ("PROCS WARNING: %d process%s", procs,
( procs != 1 ? "es" : ""));
} else {
! printf ("%s WARNING: %d warn out of %d process%s",
metric_name, warn, procs,
( procs != 1 ? "es" : ""));
--- 232,243 ----
if ( result == STATE_OK ) {
! printf (_("%s OK: %d process%s"),
metric_name, procs, ( procs != 1 ? "es" : "") );
} else if (result == STATE_WARNING) {
if ( metric == METRIC_PROCS ) {
! printf (_("PROCS WARNING: %d process%s"), procs,
( procs != 1 ? "es" : ""));
} else {
! printf (_("%s WARNING: %d warn out of %d process%s"),
metric_name, warn, procs,
( procs != 1 ? "es" : ""));
***************
*** 318,325 ****
} else if (result == STATE_CRITICAL) {
if (metric == METRIC_PROCS) {
! printf ("PROCS CRITICAL: %d process%s", procs,
( procs != 1 ? "es" : ""));
} else {
! printf ("%s CRITICAL: %d crit, %d warn out of %d process%s",
metric_name, crit, warn, procs,
( procs != 1 ? "es" : ""));
--- 245,252 ----
} else if (result == STATE_CRITICAL) {
if (metric == METRIC_PROCS) {
! printf (_("PROCS CRITICAL: %d process%s"), procs,
( procs != 1 ? "es" : ""));
} else {
! printf (_("%s CRITICAL: %d crit, %d warn out of %d process%s"),
metric_name, crit, warn, procs,
( procs != 1 ? "es" : ""));
***************
*** 338,373 ****
}
- /* Check thresholds against value */
- int
- check_thresholds (int value)
- {
- if (wmax == -1 && cmax == -1 && wmin == -1 && cmin == -1) {
- return OK;
- }
- else if (cmax >= 0 && cmin >= 0 && cmax < cmin) {
- if (value > cmax && value < cmin)
- return STATE_CRITICAL;
- }
- else if (cmax >= 0 && value > cmax) {
- return STATE_CRITICAL;
- }
- else if (cmin >= 0 && value < cmin) {
- return STATE_CRITICAL;
- }
- if (wmax >= 0 && wmin >= 0 && wmax < wmin) {
- if (value > wmax && value < wmin) {
- return STATE_WARNING;
- }
- }
- else if (wmax >= 0 && value > wmax) {
- return STATE_WARNING;
- }
- else if (wmin >= 0 && value < wmin) {
- return STATE_WARNING;
- }
- return STATE_OK;
- }
/* process command-line arguments */
int
--- 265,273 ----
}
+
+
+
/* process command-line arguments */
int
***************
*** 415,423 ****
exit (STATE_OK);
case 'V': /* version */
! print_revision (progname, REVISION);
exit (STATE_OK);
case 't': /* timeout period */
if (!is_integer (optarg)) {
! printf ("%s: Timeout Interval must be an integer!\n\n",
progname);
print_usage ();
--- 315,323 ----
exit (STATE_OK);
case 'V': /* version */
! print_revision (progname, revision);
exit (STATE_OK);
case 't': /* timeout period */
if (!is_integer (optarg)) {
! printf (_("%s: Timeout Interval must be an integer!\n\n"),
progname);
print_usage ();
***************
*** 441,445 ****
}
else {
! printf ("%s: Critical Process Count must be an integer!\n\n",
progname);
print_usage ();
--- 341,345 ----
}
else {
! printf (_("%s: Critical Process Count must be an integer!\n\n"),
progname);
print_usage ();
***************
*** 461,465 ****
}
else {
! printf ("%s: Warning Process Count must be an integer!\n\n",
progname);
print_usage ();
--- 361,365 ----
}
else {
! printf (_("%s: Warning Process Count must be an integer!\n\n"),
progname);
print_usage ();
***************
*** 472,476 ****
break;
}
! printf ("%s: Parent Process ID must be an integer!\n\n",
progname);
print_usage ();
--- 372,376 ----
break;
}
! printf (_("%s: Parent Process ID must be an integer!\n\n"),
progname);
print_usage ();
***************
*** 478,482 ****
case 's': /* status */
asprintf (&statopts, "%s", optarg);
! asprintf (&fmt, "%s%sSTATE = %s", fmt, (options ? ", " : ""), statopts);
options |= STAT;
break;
--- 378,382 ----
case 's': /* status */
asprintf (&statopts, "%s", optarg);
! asprintf (&fmt, _("%s%sSTATE = %s"), fmt, (options ? ", " : ""), statopts);
options |= STAT;
break;
***************
*** 487,491 ****
/* check to be sure user exists */
if (pw == NULL) {
! printf ("UID %d was not found\n", uid);
print_usage ();
exit (STATE_UNKNOWN);
--- 387,391 ----
/* check to be sure user exists */
if (pw == NULL) {
! printf (_("UID %d was not found\n"), uid);
print_usage ();
exit (STATE_UNKNOWN);
***************
*** 496,500 ****
/* check to be sure user exists */
if (pw == NULL) {
! printf ("User name %s was not found\n", optarg);
print_usage ();
exit (STATE_UNKNOWN);
--- 396,400 ----
/* check to be sure user exists */
if (pw == NULL) {
! printf (_("User name %s was not found\n"), optarg);
print_usage ();
exit (STATE_UNKNOWN);
***************
*** 504,508 ****
}
user = pw->pw_name;
! asprintf (&fmt, "%s%sUID = %d (%s)", fmt, (options ? ", " : ""),
uid, user);
options |= USER;
--- 404,408 ----
}
user = pw->pw_name;
! asprintf (&fmt, _("%s%sUID = %d (%s)"), fmt, (options ? ", " : ""),
uid, user);
options |= USER;
***************
*** 510,514 ****
case 'C': /* command */
asprintf (&prog, "%s", optarg);
! asprintf (&fmt, "%s%scommand name '%s'", fmt, (options ? ", " : ""),
prog);
options |= PROG;
--- 410,414 ----
case 'C': /* command */
asprintf (&prog, "%s", optarg);
! asprintf (&fmt, _("%s%scommand name '%s'"), fmt, (options ? ", " : ""),
prog);
options |= PROG;
***************
*** 516,529 ****
case 'a': /* args (full path name with args) */
asprintf (&args, "%s", optarg);
! asprintf (&fmt, "%s%sargs '%s'", fmt, (options ? ", " : ""), args);
options |= ARGS;
break;
case 'r': /* RSS */
if (sscanf (optarg, "%d%[^0-9]", &rss, tmp) == 1) {
! asprintf (&fmt, "%s%sRSS >= %d", fmt, (options ? ", " : ""), rss);
options |= RSS;
break;
}
! printf ("%s: RSS must be an integer!\n\n",
progname);
print_usage ();
--- 416,429 ----
case 'a': /* args (full path name with args) */
asprintf (&args, "%s", optarg);
! asprintf (&fmt, _("%s%sargs '%s'"), fmt, (options ? ", " : ""), args);
options |= ARGS;
break;
case 'r': /* RSS */
if (sscanf (optarg, "%d%[^0-9]", &rss, tmp) == 1) {
! asprintf (&fmt, _("%s%sRSS >= %d"), fmt, (options ? ", " : ""), rss);
options |= RSS;
break;
}
! printf (_("%s: RSS must be an integer!\n\n"),
progname);
print_usage ();
***************
*** 531,539 ****
case 'z': /* VSZ */
if (sscanf (optarg, "%d%[^0-9]", &vsz, tmp) == 1) {
! asprintf (&fmt, "%s%sVSZ >= %d", fmt, (options ? ", " : ""), vsz);
options |= VSZ;
break;
}
! printf ("%s: VSZ must be an integer!\n\n",
progname);
print_usage ();
--- 431,439 ----
case 'z': /* VSZ */
if (sscanf (optarg, "%d%[^0-9]", &vsz, tmp) == 1) {
! asprintf (&fmt, _("%s%sVSZ >= %d"), fmt, (options ? ", " : ""), vsz);
options |= VSZ;
break;
}
! printf (_("%s: VSZ must be an integer!\n\n"),
progname);
print_usage ();
***************
*** 542,550 ****
/* TODO: -P 1.5.5 is accepted */
if (sscanf (optarg, "%f%[^0-9.]", &pcpu, tmp) == 1) {
! asprintf (&fmt, "%s%sPCPU >= %.2f", fmt, (options ? ", " : ""), pcpu);
options |= PCPU;
break;
}
! printf ("%s: PCPU must be a float!\n\n",
progname);
print_usage ();
--- 442,450 ----
/* TODO: -P 1.5.5 is accepted */
if (sscanf (optarg, "%f%[^0-9.]", &pcpu, tmp) == 1) {
! asprintf (&fmt, _("%s%sPCPU >= %.2f"), fmt, (options ? ", " : ""), pcpu);
options |= PCPU;
break;
}
! printf (_("%s: PCPU must be a float!\n\n"),
progname);
print_usage ();
***************
*** 568,572 ****
break;
}
! printf ("%s: metric must be one of PROCS, VSZ, RSS, CPU!\n\n",
progname);
print_usage ();
--- 468,472 ----
break;
}
! printf (_("%s: metric must be one of PROCS, VSZ, RSS, CPU!\n\n"),
progname);
print_usage ();
***************
*** 585,589 ****
if (statopts == NULL && argv[c]) {
asprintf (&statopts, "%s", argv[c++]);
! asprintf (&fmt, "%s%sSTATE = %s", fmt, (options ? ", " : ""), statopts);
options |= STAT;
}
--- 485,489 ----
if (statopts == NULL && argv[c]) {
asprintf (&statopts, "%s", argv[c++]);
! asprintf (&fmt, _("%s%sSTATE = %s"), fmt, (options ? ", " : ""), statopts);
options |= STAT;
}
***************
*** 593,596 ****
--- 493,498 ----
+
+
int
validate_arguments ()
***************
*** 603,611 ****
if (wmax >= wmin && cmax >= cmin) { /* standard ranges */
if (wmax > cmax && cmax != -1) {
! printf ("wmax (%d) cannot be greater than cmax (%d)\n", wmax, cmax);
return ERROR;
}
if (cmin > wmin && wmin != -1) {
! printf ("wmin (%d) cannot be less than cmin (%d)\n", wmin, cmin);
return ERROR;
}
--- 505,513 ----
if (wmax >= wmin && cmax >= cmin) { /* standard ranges */
if (wmax > cmax && cmax != -1) {
! printf (_("wmax (%d) cannot be greater than cmax (%d)\n"), wmax, cmax);
return ERROR;
}
if (cmin > wmin && wmin != -1) {
! printf (_("wmin (%d) cannot be less than cmin (%d)\n"), wmin, cmin);
return ERROR;
}
***************
*** 624,636 ****
void
print_help (void)
{
! print_revision (progname, REVISION);
! printf
! ("Copyright (c) %s %s <%s>\n\n%s\n",
! COPYRIGHT, AUTHOR, EMAIL, SUMMARY);
print_usage ();
! printf ("\nOptions:\n" LONGOPTIONS "\nExamples:\n" EXAMPLES "\n");
}
--- 526,650 ----
+
+
+
+
+ /* Check thresholds against value */
+ int
+ check_thresholds (int value)
+ {
+ if (wmax == -1 && cmax == -1 && wmin == -1 && cmin == -1) {
+ return OK;
+ }
+ else if (cmax >= 0 && cmin >= 0 && cmax < cmin) {
+ if (value > cmax && value < cmin)
+ return STATE_CRITICAL;
+ }
+ else if (cmax >= 0 && value > cmax) {
+ return STATE_CRITICAL;
+ }
+ else if (cmin >= 0 && value < cmin) {
+ return STATE_CRITICAL;
+ }
+
+ if (wmax >= 0 && wmin >= 0 && wmax < wmin) {
+ if (value > wmax && value < wmin) {
+ return STATE_WARNING;
+ }
+ }
+ else if (wmax >= 0 && value > wmax) {
+ return STATE_WARNING;
+ }
+ else if (wmin >= 0 && value < wmin) {
+ return STATE_WARNING;
+ }
+ return STATE_OK;
+ }
+
+
+
+
+
+
void
print_help (void)
{
! print_revision (progname, revision);
!
! printf (_("Copyright (c) 1999 Ethan Galstad <nagios at nagios.org>"));
! printf (_(COPYRIGHT), copyright, email);
!
! printf(_("\
! Checks all processes and generates WARNING or CRITICAL states if the specified\n\
! metric is outside the required threshold ranges. The metric defaults to number\n\
! of processes. Search filters can be applied to limit the processes to check.\n\n"));
!
print_usage ();
!
! printf(_("\n\
! Required Arguments:\n\
! -w, --warning=RANGE\n\
! Generate warning state if metric is outside this range\n\
! -c, --critical=RANGE\n\
! Generate critical state if metric is outside this range\n"));
!
! printf(_("\n\
! Optional Arguments:\n\
! -m, --metric=TYPE\n\
! Check thresholds against metric. Valid types:\n\
! PROCS - number of processes (default)\n\
! VSZ - virtual memory size\n\
! RSS - resident set memory size\n\
! CPU - percentage cpu\n\
! -v, --verbose\n\
! Extra information. Up to 3 verbosity levels\n"));
!
! printf(_("\n\
! Optional Filters:\n\
! -s, --state=STATUSFLAGS\n\
! Only scan for processes that have, in the output of `ps`, one or\n\
! more of the status flags you specify (for example R, Z, S, RS,\n\
! RSZDT, plus others based on the output of your 'ps' command).\n\
! -p, --ppid=PPID\n\
! Only scan for children of the parent process ID indicated.\n\
! -z, --vsz=VSZ\n\
! Only scan for processes with vsz higher than indicated.\n\
! -r, --rss=RSS\n\
! Only scan for processes with rss higher than indicated.\n"));
!
! printf(_("\
! -P, --pcpu=PCPU\n\
! Only scan for processes with pcpu higher than indicated.\n\
! -u, --user=USER\n\
! Only scan for processes with user name or ID indicated.\n\
! -a, --argument-array=STRING\n\
! Only scan for processes with args that contain STRING.\n\
! -C, --command=COMMAND\n\
! Only scan for exact matches to the named COMMAND.\n"));
!
! printf(_("\n\
! RANGEs are specified 'min:max' or 'min:' or ':max' (or 'max'). If\n\
! specified 'max:min', a warning status will be generated if the\n\
! count is inside the specified range\n\n"));
!
! printf(_("\
! This plugin checks the number of currently running processes and\n\
! generates WARNING or CRITICAL states if the process count is outside\n\
! the specified threshold ranges. The process count can be filtered by\n\
! process owner, parent process PID, current state (e.g., 'Z'), or may\n\
! be the total number of running processes\n\n"));
!
! printf(_("\
! Examples:\n\
! check_procs -w 2:2 -c 2:1024 -C portsentry\n\
! Warning if not two processes with command name portsentry. Critical\n\
! if < 2 or > 1024 processes\n\n\
! check_procs -w 10 -a '/usr/local/bin/perl' -u root\n\
! Warning alert if > 10 processes with command arguments containing \n\
! '/usr/local/bin/perl' and owned by root\n\n\
! check_procs -w 50000 -c 100000 --metric=VSZ\n\
! Alert if vsz of any processes over 50K or 100K\n\n"));
!
! printf (_(UT_SUPPORT));
}
***************
*** 638,644 ****
print_usage (void)
{
! printf ("Usage:\n" " %s %s\n"
! " %s (-h | --help) for detailed help\n"
! " %s (-V | --version) for version information\n",
! progname, OPTIONS, progname, progname);
}
--- 652,660 ----
print_usage (void)
{
! printf ("\
! Usage: %s -w <range> -c <range> [-m metric] [-s state] [-p ppid]\n\
! [-u user] [-r rss] [-z vsz] [-P %%cpu] [-a argument-array]\n\
! [-C command] [-v]\n", progname);
! printf (_(UT_HLP_VRS), progname, progname);
}
+
More information about the Commits
mailing list