Files
2026-10-04 04:07:15 +00:00

100 lines
2.3 KiB
Bash

#!/bin/sh
# PROVIDE: bhyvemgrd
# REQUIRE: NETWORKING
# KEYWORD: shutdown
#
# Configuration settings for bhyvemgrd in /etc/rc.conf:
#
# bhyvemgrd_enable: run bhyvemgrd as service (default=NO)
#
. /etc/rc.subr
name=bhyvemgrd
rcvar=bhyvemgrd_enable
load_rc_config ${name}
: ${bhyvemgrd_enable:=NO}
bhyvemgrd_user="bhyvemgrd"
bhyvemgrd_group="bhyvemgrd"
bhyvemgrd_logfile="/var/log/bhyvemgrd.log"
bhyvemgrd_socketdir="/var/run/bhyvemgrd"
pidfile="/var/run/${name}/${name}.pid"
procname="/usr/local/sbin/bhyvemgrd"
command="/usr/sbin/daemon"
command_args="-t ${name} -p ${pidfile} -o ${bhyvemgrd_logfile} ${procname}"
start_precmd=${name}_prestart
status_cmd=${name}_status
stop_cmd=${name}_stop
restart_cmd=${name}_restart
reload_cmd=${name}_reload
extra_commands="reload status"
bhyvemgrd_prestart()
{
if [ ! -d "${bhyvemgrd_socketdir}" ]; then
mkdir ${bhyvemgrd_socketdir}
chmod 770 ${bhyvemgrd_socketdir}
chown ${bhyvemgrd_user}:${bhyvemgrd_group} ${bhyvemgrd_socketdir}
fi
if [ ! -e ${pidfile} ]; then
install -o ${bhyvemgrd_user} -g ${bhyvemgrd_group} /dev/null ${pidfile};
fi
if [ ! -e "${bhyvemgrd_logfile}" ]; then
install -o root -g ${bhyvemgrd_group} -m 660 /dev/null ${bhyvemgrd_logfile};
fi
}
bhyvemgrd_status()
{
# If running, show pid
if [ -f ${pidfile} ]
then
echo "${name} is running as pid" `cat ${pidfile}`
else
echo "${name} is not running."
fi
}
bhyvemgrd_stop()
{
if [ -f ${pidfile} ]
then
pid_child=$(pgrep -P `cat ${pidfile}`)
if [ ! -z "${pid_child}" ]; then
echo "Stopping ${name}."
echo "${name} cannot be stopped. There are some vms running:"
pgrep -fl -P `cat ${pidfile}`
return 1
else
kill -SIGTERM `cat ${pidfile}`
echo "Stopping ${name}."
fi
else
echo "${name} not running? (check ${pidfile})."
fi
}
bhyvemgrd_reload()
{
echo "Performing reload ${name}"
kill -SIGHUP `cat ${pidfile}`
}
bhyvemgrd_restart()
{
echo "Performing restart ${name}"
run_rc_command stop || return $?
sleep 2
run_rc_command start
}
run_rc_command "$1"