Nagios Core service states come from executable plugins, not from the scheduler itself. Running a plugin from the shell gives an operator the same status line, performance data, and exit code that a scheduled check would hand back before a command definition or service check is saved.

A manual run should use the monitoring account and the same plugin path, target, and threshold arguments that Nagios Core will use. On Ubuntu and Debian package installs, standard plugins live under /usr/lib/nagios/plugins and scheduled checks run as the nagios user.

The word at the start of the output is for humans, while Nagios Core records state from the process exit code. Text after | is performance data, so keep that segment visible when graphing, perfdata processing, or threshold tuning depends on it.

Steps to run a Nagios plugin manually:

  1. Run the plugin as the nagios user with the thresholds the service will use.
    $ sudo -u nagios /usr/lib/nagios/plugins/check_load --warning=10,8,6 --critical=20,15,10
    LOAD OK - total load average: 1.12, 0.89, 0.79|load1=1.120;10.000;20.000;0; load5=0.890;8.000;15.000;0; load15=0.790;6.000;10.000;0;

    Use the installed plugin path for the Nagios Core server. Source installs often use /usr/local/nagios/libexec instead of /usr/lib/nagios/plugins.

  2. Print the plugin exit status immediately after the manual run.
    $ echo $?
    0

    Nagios Core maps exit code 0 to OK, 1 to WARNING, 2 to CRITICAL, and 3 to UNKNOWN.

  3. Test the alert path with temporary thresholds when the service must prove warning or critical behavior.
    $ sudo -u nagios /usr/lib/nagios/plugins/check_load --warning=0.01,0.01,0.01 --critical=0.02,0.02,0.02
    LOAD CRITICAL - total load average: 1.12, 0.89, 0.79|load1=1.120;0.010;0.020;0; load5=0.890;0.010;0.020;0; load15=0.790;0.010;0.020;0;

    Do not save temporary thresholds that force an alert unless the service is intentionally testing notification or escalation behavior.

  4. Print the alert test exit status.
    $ echo $?
    2
  5. Re-run the production thresholds before copying the command into Nagios Core.
    $ sudo -u nagios /usr/lib/nagios/plugins/check_load --warning=10,8,6 --critical=20,15,10
    LOAD OK - total load average: 1.12, 0.89, 0.79|load1=1.120;10.000;20.000;0; load5=0.890;8.000;15.000;0; load15=0.790;6.000;10.000;0;

    Copy the tested options into a command object or service check only after the output and exit status match the intended state.
    Related: How to define a Nagios Core check command
    Related: How to add a service check in Nagios Core