#!/bin/sh # PROVIDE: opengist # REQUIRE: LOGIN NETWORKING # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf to run opengist: # # opengist_enable (bool): Set it to "YES" to enable opengist server. # Default is "NO". # opengist_user (str): Set the user for running opengist server. # Default is "opengist". # opengist_group (str): Set the group for running opengist server. # Default is "opengist". # opengist_config_file (str): Set config file location for opengist server. # Default is "%%PREFIX%%/etc/${name}/config.yml". # opengist_syslog_output_enable (bool): Set it to "YES" for enabling output to syslogd(8) # Default is "NO" # opengist_syslog_output_priority (str): Set logging priority. # Default is "info" # opengist_syslog_output_facility (str): Set logging facility # Default is "daemon" # opengist_args (str): Extra arguments passed to opengist. # Default is "". . /etc/rc.subr name=opengist rcvar=opengist_enable load_rc_config ${name} : ${opengist_enable:="NO"} : ${opengist_user:="opengist"} : ${opengist_group:="opengist"} : ${opengist_config_file:="%%PREFIX%%/etc/${name}/config.yml"} : ${opengist_syslog_output_enable:="NO"} : ${opengist_syslog_output_priority:="info"} : ${opengist_syslog_output_facility:="daemon"} : ${opengist_args:=""} opengist_syslog_output_flags="" if checkyesno opengist_syslog_output_enable; then opengist_syslog_output_flags="-t ${name} -T ${name}" if [ -n "${opengist_syslog_output_priority}" ]; then opengist_syslog_output_flags="${opengist_syslog_output_flags} -s ${opengist_syslog_output_priority}" fi if [ -n "${opengist_syslog_output_facility}" ]; then opengist_syslog_output_flags="${opengist_syslog_output_flags} -l ${opengist_syslog_output_facility}" fi fi pidfile="/var/run/${name}.pid" daemon_pidfile="/var/run/${name}-daemon.pid" procname="%%PREFIX%%/bin/${name}" command="/usr/sbin/daemon" command_args="-f -c ${opengist_syslog_output_flags} -p ${pidfile} -P ${daemon_pidfile} \ /usr/bin/env -i PATH=%%PREFIX%%/bin:${PATH} \ ${procname} -c ${opengist_config_file} ${opengist_args}" start_precmd=opengist_startprecmd stop_postcmd=opengist_stoppostcmd opengist_startprecmd() { if [ ! -f ${opengist_config_file} ]; then echo "${opengist_config_file} missing." return 1 fi if [ ! -e ${daemon_pidfile} ]; then install -o ${opengist_user} -g ${opengist_group} /dev/null ${daemon_pidfile} fi if [ ! -e ${pidfile} ]; then install -o ${opengist_user} -g ${opengist_group} /dev/null ${pidfile} fi } opengist_stoppostcmd() { if [ -f "${daemon_pidfile}" ]; then pids=$( pgrep -F ${daemon_pidfile} 2>&1 ) _err=$? [ ${_err} -eq 0 ] && kill -9 ${pids} fi } run_rc_command "$1"