use IPC::Cmd qw[can_run run run_forked]; my $cmd = "systemctl --failed --no-legend"; my ( $success, $error_message, $full_buf, $stdout_buf, $stderr_buf ) = run( command => $cmd, verbose => 0 ); if ($success) { my $nr_els = @$full_buf; if ( $nr_els == 0 ) { print "OK: all systemd units in their desired state\n"; } else { print "WARNING: "; print "$nr_els systemd units not running\n"; for (@$full_buf) { print "$_\n"; } } } #### WARNING: 1 systemd units not running avahi-daemon.service loaded failed failed Avahi mDNS/DNS-SD Stack packagekit.service loaded failed failed PackageKit Daemon