summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiclas Zeising <zeising@FreeBSD.org>2017-11-21 18:55:28 +0000
committerNiclas Zeising <zeising@FreeBSD.org>2017-11-21 18:55:28 +0000
commit5ed97997b091677744e80cee92fce9a8e1f9c091 (patch)
tree5b2ee176f4226cd7414f4b3a087cd884f29694b2
parentRemove expired ports: (diff)
Fix suricata failing to start if there is a stale pid file laying around.
This can happen if suricata is ungracefully shut down. PR: 223052, 223322 Submitted by: Reshad Patuck, Franco Fichtner Approved by: Franco Fichtner (maintainer) MFH: 2017Q4
Notes
Notes: svn path=/head/; revision=454649
-rw-r--r--security/suricata/Makefile1
-rw-r--r--security/suricata/files/suricata.in17
2 files changed, 16 insertions, 2 deletions
diff --git a/security/suricata/Makefile b/security/suricata/Makefile
index bf7a3cbc00d2..771ba6afdfa5 100644
--- a/security/suricata/Makefile
+++ b/security/suricata/Makefile
@@ -3,6 +3,7 @@
PORTNAME= suricata
PORTVERSION= 4.0.0
+PORTREVISION= 1
CATEGORIES= security
MASTER_SITES= http://www.openinfosecfoundation.org/download/
diff --git a/security/suricata/files/suricata.in b/security/suricata/files/suricata.in
index d93a2f9fbfa3..7e1ef82d8ef8 100644
--- a/security/suricata/files/suricata.in
+++ b/security/suricata/files/suricata.in
@@ -19,13 +19,17 @@
# Default: 8000
# suricata_netmap (str): Set to YES to enable netmap (Inline Mode)
# Default: NO
-
+# suricata_user (str): Set the user to run suricata as
+# Default: root
+# suricata_pidfile (str): Pidfile to store pid of suricata process
+# Default: /var/run/suricata.pid
. /etc/rc.subr
name="suricata"
rcvar=suricata_enable
+start_precmd="suricata_prestart"
command="%%PREFIX%%/bin/suricata"
load_rc_config $name
@@ -35,6 +39,8 @@ load_rc_config $name
[ -z "$suricata_flags" ] && suricata_flags="-D"
[ -z "$suricata_divertport" ] && suricata_divertport="8000"
[ -z "$suricata_netmap" ] && suricata_netmap="NO"
+[ -z "$suricata_user" ] && suricata_user="root"
+[ -z "$suricata_pidfile" ] && suricata_pidfile="/var/run/suricata.pid"
if [ -n "$suricata_interface" ]; then
for interface in $suricata_interface; do
@@ -47,9 +53,16 @@ else
info "Inline Mode on divert port $suricata_divertport (suricata_interface not defined)"
fi
-pidfile="/var/run/suricata.pid"
+pidfile=$suricata_pidfile
suricata_flags="$suricata_flags --pidfile $pidfile"
[ -n "$suricata_conf" ] && suricata_flags="$suricata_flags -c $suricata_conf"
+suricata_prestart()
+{
+ if ! run_rc_command status > /dev/null; then
+ rm -f "$pidfile"
+ fi
+}
+
run_rc_command "$1"