Index: head/net-mgmt/unifi5/Makefile =================================================================== --- head/net-mgmt/unifi5/Makefile (revision 433675) +++ head/net-mgmt/unifi5/Makefile (revision 433676) @@ -1,62 +1,62 @@ # Created by: Alban MAIRE # $FreeBSD$ PORTNAME= unifi5 PORTVERSION= 5.4.11 -PORTREVISION= 0 +PORTREVISION= 1 CATEGORIES= net-mgmt java MASTER_SITES= https://www.ubnt.com/downloads/unifi/${PORTVERSION}-${UNIFI_TAG}/ \ LOCAL/feld/${PORTNAME}-${PORTVERSION}/ DISTNAME= UniFi.unix DIST_SUBDIR= ${PORTNAME}-${PORTVERSION} MAINTAINER= feld@FreeBSD.org COMMENT= UniFi Controller v5 RUN_DEPENDS= mongodb>0:databases/mongodb \ snappyjava>0:archivers/snappy-java BUILD= 2 BUNDLEDFW= 3.7.37.6065 UNIFI_TAG= 6cbeae59e7 SUB_LIST+= USERS=${USERS} GROUPS=${GROUPS} JAVASHAREDIR=${JAVASHAREDIR} \ JAVA=${JAVA} PLIST_SUB+= BUILDVERSION="${PORTVERSION}.${BUILD}" BUNDLEDFW="${BUNDLEDFW}" USES= cpe zip CPE_VENDOR= ubnt CPE_PRODUCT= unifi_controller USE_JAVA= yes JAVA_VERSION= 1.8 JAVA_OS= native JAVA_VENDOR= openjdk bsdjava JAVA_RUN= yes NO_BUILD= yes NO_ARCH= yes USE_RC_SUBR= unifi USERS= unifi GROUPS= unifi WRKSRC= ${WRKDIR}/UniFi RESTRICTED= Redistribution of bundled firmware images is not permitted CONFLICTS= unifi2-* unifi3-* unifi4-* post-patch: ${RM} ${WRKSRC}/lib/snappy-java-1.0.5.jar (cd ${WRKSRC}/lib && ${LN} -s ${JAVAJARDIR}/snappy-java.jar snappy-java-1.0.5.jar) do-install: ${MKDIR} ${STAGEDIR}${JAVASHAREDIR}/unifi (cd ${WRKSRC} && ${COPYTREE_SHARE} \* ${STAGEDIR}${JAVASHAREDIR}/unifi/) ${LN} -sf ${PREFIX}/bin/mongod ${STAGEDIR}${JAVASHAREDIR}/unifi/bin/mongod # Create directories that will be writable by unifi .for i in data logs run work ${MKDIR} ${STAGEDIR}/${JAVASHAREDIR}/unifi/${i} .endfor .include Index: head/net-mgmt/unifi5/files/unifi.in =================================================================== --- head/net-mgmt/unifi5/files/unifi.in (revision 433675) +++ head/net-mgmt/unifi5/files/unifi.in (revision 433676) @@ -1,41 +1,60 @@ #!/bin/sh # # Created by: Mark Felder # $FreeBSD$ # # PROVIDE: unifi # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following line to /etc/rc.conf to enable `unifi': # # unifi_enable="YES" . /etc/rc.subr name=unifi rcvar=unifi_enable load_rc_config ${name} : ${unifi_enable:=NO} : ${unifi_user:=%%USERS%%} : ${unifi_group:=%%GROUPS%%} : ${unifi_chdir=%%JAVASHAREDIR%%/unifi} : ${unifi_javaflags:="-Djava.awt.headless=true -Xmx1024M"} pidfile="/var/run/unifi/${name}.pid" procname=%%JAVA%% command="/usr/sbin/daemon" command_args="-f -p ${pidfile} %%JAVA%% ${unifi_javaflags} -jar lib/ace.jar start" start_precmd=start_precmd +stop_precmd=stop_precmd +stop_postcmd=stop_postcmd start_precmd() { if [ ! -e /var/run/unifi ] ; then install -d -o %%USERS%% -g %%GROUPS%% /var/run/unifi; + fi +} + +stop_precmd() +{ + if [ -r ${pidfile} ]; then + _UNIFIPID=$(check_pidfile ${pidfile} ${procname}) + export _UNIFI_CHILDREN=$(pgrep -P ${_UNIFIPID}) + fi +} + +stop_postcmd() +{ + if ! [ -z ${_UNIFI_CHILDREN} ]; then + echo "Cleaning up leftover child processes." + kill $sig_stop ${_UNIFI_CHILDREN} + wait_for_pids ${_UNIFI_CHILDREN} fi } run_rc_command "$1"