From 796eea2154ae581aeae68be92bd04f105d0a939b Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Sun, 5 Aug 2018 14:23:45 +0200 Subject: [PATCH] ids-functions.pl: Add function to check if the IDS is running Signed-off-by: Stefan Schantl --- config/cfgroot/ids-functions.pl | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) 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; -- 2.47.3