nats-server: Create rc.d and SMF bits
This commit is contained in:
parent
09cb79a555
commit
2d7beee4df
|
@ -12,7 +12,36 @@ LICENSE= apache-2.0
|
|||
|
||||
GO_BUILD_PATTERN= .
|
||||
|
||||
NATS_USER= natssrv
|
||||
NATS_GROUP= natssrv
|
||||
NATS_HOMEDIR= ${VARBASE}/nats-server
|
||||
NATS_LOGDIR= ${VARBASE}/log/nats-server
|
||||
NATS_LOGFILE= ${NATS_LOGDIR}/nats-server.log
|
||||
|
||||
CHECK_SSP_SKIP= bin/*
|
||||
|
||||
.include "go-modules.mk"
|
||||
|
||||
.include "../../mk/bsd.prefs.mk"
|
||||
|
||||
PKG_GROUPS= ${NATS_GROUP}
|
||||
PKG_USERS= ${NATS_USER}:${NATS_GROUP}
|
||||
|
||||
PKG_HOME.${NATS_USER}= ${NATS_HOMEDIR}
|
||||
PKG_GECOS.${NATS_USER}= nats.io server
|
||||
|
||||
RCD_SCRIPTS= nats-server
|
||||
SMF_NAME= nats-server
|
||||
SMF_METHODS= ${RCD_SCRIPTS}
|
||||
|
||||
FILES_SUBST+= NATS_USER=${NATS_USER}
|
||||
FILES_SUBST+= NATS_GROUP=${NATS_GROUP}
|
||||
FILES_SUBST+= NATS_HOMEDIR=${NATS_HOMEDIR}
|
||||
FILES_SUBST+= NATS_LOGDIR=${NATS_LOGDIR}
|
||||
FILES_SUBST+= NATS_LOGFILE=${NATS_LOGFILE}
|
||||
|
||||
OWN_DIRS_PERMS+= ${NATS_HOMEDIR} ${NATS_USER} ${NATS_GROUP} 0700
|
||||
MAKE_DIRS_PERMS+= ${NATS_LOGDIR} ${NATS_USER} ${NATS_GROUP} 0700
|
||||
|
||||
.include "../../lang/go/go-module.mk"
|
||||
.include "../../mk/bsd.pkg.mk"
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
#!@RCD_SCRIPTS_SHELL@
|
||||
#
|
||||
# $NetBSD$
|
||||
#
|
||||
# PROVIDE: nats-server
|
||||
# REQUIRE: DAEMON LOGIN mountall
|
||||
# KEYWORD: shutdown
|
||||
#
|
||||
# You will need to set some variables in /etc/rc.conf to start nats-server:
|
||||
#
|
||||
# natsserver=YES
|
||||
#
|
||||
# The following variables are optional:
|
||||
#
|
||||
# natsserver_pidfile="/path/to/p.pid" path to nats-server PID file
|
||||
# default:
|
||||
# @NATS_HOMEDIR@/nats-server.pid
|
||||
# natsserver_logfile="/path/to/p.log" path to nats-server log file
|
||||
# default:
|
||||
# @NATS_LOGFILE@
|
||||
# natsserver_user="natssrv" the username for nats-server daemon
|
||||
# natsserver_group="natssrv" the group for nats-server daemon
|
||||
|
||||
if [ -f /etc/rc.subr ]; then
|
||||
. /etc/rc.subr
|
||||
fi
|
||||
|
||||
name="nats-server"
|
||||
rcvar="natsserver"
|
||||
command="@PREFIX@/bin/nats-server"
|
||||
: ${natsserver_pidfile:="@NATS_HOMEDIR@/nats-server.pid"}
|
||||
: ${natsserver_logfile:="@NATS_LOGFILE@"}
|
||||
: ${natsserver_user:="natssrv"}
|
||||
: ${natsserver_group:="natssrv"}
|
||||
|
||||
start_cmd="natssrv_start"
|
||||
|
||||
natssrv_start()
|
||||
{
|
||||
@ECHO@ "Starting ${name}."
|
||||
ulimit -n 4096
|
||||
cd @NATS_HOMEDIR@
|
||||
/usr/bin/su ${natsserver_user}:${natsserver_group} \
|
||||
${command} -P ${natsserver_pidfile} \
|
||||
-l ${natsserver_logfile} &
|
||||
}
|
||||
|
||||
if [ -f /etc/rc.subr -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then
|
||||
load_rc_config $name
|
||||
pidfile="${natsserver_pidfile}"
|
||||
run_rc_command "$1"
|
||||
else
|
||||
if [ -f /etc/rc.conf ]; then
|
||||
. /etc/rc.conf
|
||||
fi
|
||||
pidfile="${natsserver_pidfile}"
|
||||
case "$1" in
|
||||
stop)
|
||||
if [ -r "${pidfile}" ]; then
|
||||
@ECHO@ "Stopping ${name}."
|
||||
kill `@CAT@ ${pidfile}`
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
eval ${start_cmd}
|
||||
;;
|
||||
esac
|
||||
fi
|
|
@ -0,0 +1,32 @@
|
|||
<?xml version='1.0'?>
|
||||
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
|
||||
<service_bundle type='manifest' name='@SMF_NAME@'>
|
||||
<service name='@SMF_PREFIX@/@SMF_NAME@' type='service' version='1'>
|
||||
<create_default_instance enabled='false' />
|
||||
<single_instance />
|
||||
<dependency name='fs' grouping='require_all' restart_on='none' type='service'>
|
||||
<service_fmri value='svc:/system/filesystem/local' />
|
||||
</dependency>
|
||||
<dependency name='net' grouping='require_all' restart_on='none' type='service'>
|
||||
<service_fmri value='svc:/network/loopback' />
|
||||
</dependency>
|
||||
<method_context working_directory='@VARBASE@/nats-server'>
|
||||
<method_credential user='@NATS_USER@' group='@NATS_GROUP@' />
|
||||
<method_environment>
|
||||
<envvar name='LD_PRELOAD_32' value='/usr/lib/extendedFILE.so.1' />
|
||||
</method_environment>
|
||||
</method_context>
|
||||
<exec_method name='start' type='method' exec='@PREFIX@/@SMF_METHOD_FILE.nats-server@ start' timeout_seconds='0' />
|
||||
<exec_method name='stop' type='method' exec='@PREFIX@/@SMF_METHOD_FILE.nats-server@ stop' timeout_seconds='0' />
|
||||
<stability value='Evolving' />
|
||||
<template>
|
||||
<common_name>
|
||||
<loctext xml:lang='C'>nats.io messaging server</loctext>
|
||||
</common_name>
|
||||
<documentation>
|
||||
<manpage title='NATS' section='1' />
|
||||
<doc_link name='nats.io' uri='https://nats.io/' />
|
||||
</documentation>
|
||||
</template>
|
||||
</service>
|
||||
</service_bundle>
|
|
@ -0,0 +1,29 @@
|
|||
#!@SMF_METHOD_SHELL@
|
||||
#
|
||||
# $NetBSD$
|
||||
#
|
||||
# Init script for nats-server
|
||||
#
|
||||
|
||||
. /lib/svc/share/smf_include.sh
|
||||
|
||||
PIDFILE="@NATS_HOMEDIR@/nats-server.pid"
|
||||
LOGFILE="@NATS_LOGFILE@"
|
||||
|
||||
ulimit -n 10240
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
@PREFIX@/bin/nats-server -P ${PIDFILE} \
|
||||
-l ${LOGFILE} &
|
||||
;;
|
||||
stop)
|
||||
[ -f ${PIDFILE} ] && kill `@HEAD@ -1 ${PIDFILE}`
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit $SMF_EXIT_OK
|
Loading…
Reference in New Issue