diff --git a/security/munge/Makefile b/security/munge/Makefile index fc2e5360a3ea..f0b232fb692c 100644 --- a/security/munge/Makefile +++ b/security/munge/Makefile @@ -1,28 +1,28 @@ PORTNAME= munge DISTVERSION= 0.5.15 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= security MASTER_SITES= https://github.com/dun/${PORTNAME}/releases/download/${PORTNAME}-${DISTVERSION}/ MAINTAINER= bofh@FreeBSD.org COMMENT= Authentication service for creating and validating credentials WWW= https://dun.github.io/munge/ LICENSE= GPLv3 LGPL3 LICENSE_COMB= dual LIB_DEPENDS= libgcrypt.so:security/libgcrypt USES= cpe libtool pathfix ssl tar:xz CPE_VENDOR= opensuse USE_LDCONFIG= yes USE_RC_SUBR= munged GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX=${PREFIX}/share CONFIGURE_ARGS= --with-openssl-prefix=${OPENSSLBASE} INSTALL_TARGET= install-strip TEST_TARGET= check .include diff --git a/security/munge/files/munged.in b/security/munge/files/munged.in old mode 100644 new mode 100755 index 4a78b22acd4c..80bba011209f --- a/security/munge/files/munged.in +++ b/security/munge/files/munged.in @@ -1,40 +1,53 @@ #!/bin/sh # PROVIDE: munged # REQUIRE: LOGIN # KEYWORD: shutdown # Add the following line to /etc/rc.conf to enable munged: # munged_enable (bool): Set to "NO" by default. # Set it to "YES" to enable munged. -# munged_keyfile (str): Set to "/usr/local/etc/munge/munge.key" by default. +# munged_keyfile (str): Set to "%%PREFIX%%/etc/munge/munge.key" by default. # Custom munge key. # munged_pidfile (str): Set to "/var/run/munged.pid" by default. # Custom PID file path and name. # munged_flags (str): Set to "" by default. # Extra flags passed to start command. . /etc/rc.subr name="munged" rcvar=munged_enable stop_cmd="munged_stop" load_rc_config $name : ${munged_enable="NO"} munged_user=root munged_keyfile="%%PREFIX%%/etc/munge/munge.key" pidfile="/var/run/munge/${name}.pid" command="%%PREFIX%%/sbin/${name}" command_args="--key-file=${munged_keyfile}" munged_stop() { - if [ -f "${pidfile}" ]; then - kill `cat ${pidfile}` + if checkyesno $rcvar; then + echo "Stopping $name." + pids="$(pgrep -d ' ' $name)" + if [ -n "$pids" ]; then + echo "Waiting for PIDs: $pids" + for signal in TERM INT QUIT KILL + do + kill -s $signal $pids + sleep 1 + pids=$(pgrep -d ' ' $name) + if [ -z "$pids" ]; then + break + fi + done fi - + rm -f $pidfile + fi } run_rc_command "$1"