From: Stefan Schantl Date: Sun, 5 Aug 2018 12:23:45 +0000 (+0200) Subject: ids-functions.pl: Add function to check if the IDS is running X-Git-Tag: suricata-beta3~33^2~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=796eea2154ae581aeae68be92bd04f105d0a939b;p=people%2Fstevee%2Fipfire-2.x.git ids-functions.pl: Add function to check if the IDS is running Signed-off-by: Stefan Schantl --- diff --git a/config/cfgroot/ids-functions.pl b/config/cfgroot/ids-functions.pl index acf097bb82..ebbf61585e 100644 --- a/config/cfgroot/ids-functions.pl +++ b/config/cfgroot/ids-functions.pl @@ -41,6 +41,9 @@ our $rulespath = "/etc/suricata/rules"; # (Sourcefire, Emergingthreads, etc..) our $rulesetsourcesfile = "$settingsdir/ruleset-sources"; +# The pidfile of the IDS. +our $idspidfile = "/var/run/suricata.pid"; + # ## Function for checking if at least 300MB of free disk space are available ## on the "/var" partition. @@ -290,4 +293,32 @@ sub get_available_network_zones () { return @network_zones; } +# +## Function to check if the IDS is running. +# +sub ids_is_running () { + if(-f $idspidfile) { + # Open PID file for reading. + open(PIDFILE, "$idspidfile") or die "Could not open $idspidfile. $!\n"; + + # Grab the process-id. + my $pid = ; + + # Close filehandle. + close(PIDFILE); + + # Remove any newline. + chomp($pid); + + # Check if a directory for the process-id exists in proc. + if(-d "/proc/$pid") { + # The IDS daemon is running return the process id. + return $pid; + } + } + + # Return nothing - IDS is not running. + return; +} + 1;