diff options
| author | Lorenz <12514511+RincewindsHat@users.noreply.github.com> | 2023-03-10 11:33:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-10 11:33:25 +0100 |
| commit | 5077120a251980b4fafed61b4aa8fa5730a85443 (patch) | |
| tree | 8500b8f5dbe774b399cfdc79f5665ba88ef7f255 /plugins/check_procs.c | |
| parent | a3de84594104ac87a91e200d569fb57edacca928 (diff) | |
| parent | 269718094177fb8a7e3d3005d1310495009fe8c4 (diff) | |
| download | monitoring-plugins-5077120a251980b4fafed61b4aa8fa5730a85443.tar.gz | |
Merge branch 'master' into master
Diffstat (limited to 'plugins/check_procs.c')
| -rw-r--r-- | plugins/check_procs.c | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/plugins/check_procs.c b/plugins/check_procs.c index f7917c34..a025ee89 100644 --- a/plugins/check_procs.c +++ b/plugins/check_procs.c | |||
| @@ -1,34 +1,34 @@ | |||
| 1 | /***************************************************************************** | 1 | /***************************************************************************** |
| 2 | * | 2 | * |
| 3 | * Monitoring check_procs plugin | 3 | * Monitoring check_procs plugin |
| 4 | * | 4 | * |
| 5 | * License: GPL | 5 | * License: GPL |
| 6 | * Copyright (c) 2000-2008 Monitoring Plugins Development Team | 6 | * Copyright (c) 2000-2008 Monitoring Plugins Development Team |
| 7 | * | 7 | * |
| 8 | * Description: | 8 | * Description: |
| 9 | * | 9 | * |
| 10 | * This file contains the check_procs plugin | 10 | * This file contains the check_procs plugin |
| 11 | * | 11 | * |
| 12 | * Checks all processes and generates WARNING or CRITICAL states if the | 12 | * Checks all processes and generates WARNING or CRITICAL states if the |
| 13 | * specified metric is outside the required threshold ranges. The metric | 13 | * specified metric is outside the required threshold ranges. The metric |
| 14 | * defaults to number of processes. Search filters can be applied to limit | 14 | * defaults to number of processes. Search filters can be applied to limit |
| 15 | * the processes to check. | 15 | * the processes to check. |
| 16 | * | 16 | * |
| 17 | * | 17 | * |
| 18 | * This program is free software: you can redistribute it and/or modify | 18 | * This program is free software: you can redistribute it and/or modify |
| 19 | * it under the terms of the GNU General Public License as published by | 19 | * it under the terms of the GNU General Public License as published by |
| 20 | * the Free Software Foundation, either version 3 of the License, or | 20 | * the Free Software Foundation, either version 3 of the License, or |
| 21 | * (at your option) any later version. | 21 | * (at your option) any later version. |
| 22 | * | 22 | * |
| 23 | * This program is distributed in the hope that it will be useful, | 23 | * This program is distributed in the hope that it will be useful, |
| 24 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 24 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 25 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 25 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 26 | * GNU General Public License for more details. | 26 | * GNU General Public License for more details. |
| 27 | * | 27 | * |
| 28 | * You should have received a copy of the GNU General Public License | 28 | * You should have received a copy of the GNU General Public License |
| 29 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 29 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 30 | * | 30 | * |
| 31 | * | 31 | * |
| 32 | *****************************************************************************/ | 32 | *****************************************************************************/ |
| 33 | 33 | ||
| 34 | const char *progname = "check_procs"; | 34 | const char *progname = "check_procs"; |
| @@ -50,7 +50,7 @@ const char *email = "devel@monitoring-plugins.org"; | |||
| 50 | 50 | ||
| 51 | int process_arguments (int, char **); | 51 | int process_arguments (int, char **); |
| 52 | int validate_arguments (void); | 52 | int validate_arguments (void); |
| 53 | int convert_to_seconds (char *); | 53 | int convert_to_seconds (char *); |
| 54 | void print_help (void); | 54 | void print_help (void); |
| 55 | void print_usage (void); | 55 | void print_usage (void); |
| 56 | 56 | ||
| @@ -230,9 +230,9 @@ main (int argc, char **argv) | |||
| 230 | procseconds = convert_to_seconds(procetime); | 230 | procseconds = convert_to_seconds(procetime); |
| 231 | 231 | ||
| 232 | if (verbose >= 3) | 232 | if (verbose >= 3) |
| 233 | printf ("proc#=%d uid=%d vsz=%d rss=%d pid=%d ppid=%d pcpu=%.2f stat=%s etime=%s prog=%s args=%s\n", | 233 | printf ("proc#=%d uid=%d vsz=%d rss=%d pid=%d ppid=%d pcpu=%.2f stat=%s etime=%s prog=%s args=%s\n", |
| 234 | procs, procuid, procvsz, procrss, | 234 | procs, procuid, procvsz, procrss, |
| 235 | procpid, procppid, procpcpu, procstat, | 235 | procpid, procppid, procpcpu, procstat, |
| 236 | procetime, procprog, procargs); | 236 | procetime, procprog, procargs); |
| 237 | 237 | ||
| 238 | /* Ignore self */ | 238 | /* Ignore self */ |
| @@ -265,7 +265,7 @@ main (int argc, char **argv) | |||
| 265 | } | 265 | } |
| 266 | } | 266 | } |
| 267 | 267 | ||
| 268 | if ((options & STAT) && (strstr (statopts, procstat))) | 268 | if ((options & STAT) && (strstr (procstat, statopts))) |
| 269 | resultsum |= STAT; | 269 | resultsum |= STAT; |
| 270 | if ((options & ARGS) && procargs && (strstr (procargs, args) != NULL)) | 270 | if ((options & ARGS) && procargs && (strstr (procargs, args) != NULL)) |
| 271 | resultsum |= ARGS; | 271 | resultsum |= ARGS; |
| @@ -292,9 +292,9 @@ main (int argc, char **argv) | |||
| 292 | 292 | ||
| 293 | procs++; | 293 | procs++; |
| 294 | if (verbose >= 2) { | 294 | if (verbose >= 2) { |
| 295 | printf ("Matched: uid=%d vsz=%d rss=%d pid=%d ppid=%d pcpu=%.2f stat=%s etime=%s prog=%s args=%s\n", | 295 | printf ("Matched: uid=%d vsz=%d rss=%d pid=%d ppid=%d pcpu=%.2f stat=%s etime=%s prog=%s args=%s\n", |
| 296 | procuid, procvsz, procrss, | 296 | procuid, procvsz, procrss, |
| 297 | procpid, procppid, procpcpu, procstat, | 297 | procpid, procppid, procpcpu, procstat, |
| 298 | procetime, procprog, procargs); | 298 | procetime, procprog, procargs); |
| 299 | } | 299 | } |
| 300 | 300 | ||
| @@ -320,7 +320,7 @@ main (int argc, char **argv) | |||
| 320 | result = max_state (result, i); | 320 | result = max_state (result, i); |
| 321 | } | 321 | } |
| 322 | } | 322 | } |
| 323 | } | 323 | } |
| 324 | /* This should not happen */ | 324 | /* This should not happen */ |
| 325 | else if (verbose) { | 325 | else if (verbose) { |
| 326 | printf(_("Not parseable: %s"), input_buffer); | 326 | printf(_("Not parseable: %s"), input_buffer); |
| @@ -332,7 +332,7 @@ main (int argc, char **argv) | |||
| 332 | return STATE_UNKNOWN; | 332 | return STATE_UNKNOWN; |
| 333 | } | 333 | } |
| 334 | 334 | ||
| 335 | if ( result == STATE_UNKNOWN ) | 335 | if ( result == STATE_UNKNOWN ) |
| 336 | result = STATE_OK; | 336 | result = STATE_OK; |
| 337 | 337 | ||
| 338 | /* Needed if procs found, but none match filter */ | 338 | /* Needed if procs found, but none match filter */ |
| @@ -352,9 +352,9 @@ main (int argc, char **argv) | |||
| 352 | if (metric != METRIC_PROCS) { | 352 | if (metric != METRIC_PROCS) { |
| 353 | printf (_("%d crit, %d warn out of "), crit, warn); | 353 | printf (_("%d crit, %d warn out of "), crit, warn); |
| 354 | } | 354 | } |
| 355 | } | 355 | } |
| 356 | printf (ngettext ("%d process", "%d processes", (unsigned long) procs), procs); | 356 | printf (ngettext ("%d process", "%d processes", (unsigned long) procs), procs); |
| 357 | 357 | ||
| 358 | if (strcmp(fmt,"") != 0) { | 358 | if (strcmp(fmt,"") != 0) { |
| 359 | printf (_(" with %s"), fmt); | 359 | printf (_(" with %s"), fmt); |
| 360 | } | 360 | } |
| @@ -440,7 +440,7 @@ process_arguments (int argc, char **argv) | |||
| 440 | break; | 440 | break; |
| 441 | case 'c': /* critical threshold */ | 441 | case 'c': /* critical threshold */ |
| 442 | critical_range = optarg; | 442 | critical_range = optarg; |
| 443 | break; | 443 | break; |
| 444 | case 'w': /* warning threshold */ | 444 | case 'w': /* warning threshold */ |
| 445 | warning_range = optarg; | 445 | warning_range = optarg; |
| 446 | break; | 446 | break; |
| @@ -542,11 +542,11 @@ process_arguments (int argc, char **argv) | |||
| 542 | if ( strcmp(optarg, "PROCS") == 0) { | 542 | if ( strcmp(optarg, "PROCS") == 0) { |
| 543 | metric = METRIC_PROCS; | 543 | metric = METRIC_PROCS; |
| 544 | break; | 544 | break; |
| 545 | } | 545 | } |
| 546 | else if ( strcmp(optarg, "VSZ") == 0) { | 546 | else if ( strcmp(optarg, "VSZ") == 0) { |
| 547 | metric = METRIC_VSZ; | 547 | metric = METRIC_VSZ; |
| 548 | break; | 548 | break; |
| 549 | } | 549 | } |
| 550 | else if ( strcmp(optarg, "RSS") == 0 ) { | 550 | else if ( strcmp(optarg, "RSS") == 0 ) { |
| 551 | metric = METRIC_RSS; | 551 | metric = METRIC_RSS; |
| 552 | break; | 552 | break; |
| @@ -559,7 +559,7 @@ process_arguments (int argc, char **argv) | |||
| 559 | metric = METRIC_ELAPSED; | 559 | metric = METRIC_ELAPSED; |
| 560 | break; | 560 | break; |
| 561 | } | 561 | } |
| 562 | 562 | ||
| 563 | usage4 (_("Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!")); | 563 | usage4 (_("Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!")); |
| 564 | case 'k': /* linux kernel thread filter */ | 564 | case 'k': /* linux kernel thread filter */ |
| 565 | kthread_filter = 1; | 565 | kthread_filter = 1; |
| @@ -642,7 +642,7 @@ convert_to_seconds(char *etime) { | |||
| 642 | seconds = 0; | 642 | seconds = 0; |
| 643 | 643 | ||
| 644 | for (ptr = etime; *ptr != '\0'; ptr++) { | 644 | for (ptr = etime; *ptr != '\0'; ptr++) { |
| 645 | 645 | ||
| 646 | if (*ptr == '-') { | 646 | if (*ptr == '-') { |
| 647 | hyphcnt++; | 647 | hyphcnt++; |
| 648 | continue; | 648 | continue; |
| @@ -775,7 +775,7 @@ be the total number of running processes\n\n")); | |||
| 775 | printf (" %s\n", "check_procs -w 50000 -c 100000 --metric=VSZ"); | 775 | printf (" %s\n", "check_procs -w 50000 -c 100000 --metric=VSZ"); |
| 776 | printf (" %s\n\n", _("Alert if VSZ of any processes over 50K or 100K")); | 776 | printf (" %s\n\n", _("Alert if VSZ of any processes over 50K or 100K")); |
| 777 | printf (" %s\n", "check_procs -w 10 -c 20 --metric=CPU"); | 777 | printf (" %s\n", "check_procs -w 10 -c 20 --metric=CPU"); |
| 778 | printf (" %s\n", _("Alert if CPU of any processes over 10%% or 20%%")); | 778 | printf (" %s\n", _("Alert if CPU of any processes over 10\% or 20\%")); |
| 779 | 779 | ||
| 780 | printf (UT_SUPPORT); | 780 | printf (UT_SUPPORT); |
| 781 | } | 781 | } |
