100 lines
2.3 KiB
Bash
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"
|