- fix build on i386 - change the daemons default starting order (managers should start first)
127 lines
2.1 KiB
Bash
127 lines
2.1 KiB
Bash
#!/bin/sh
|
|
|
|
# $FreeBSD$
|
|
#
|
|
# PROVIDE: leofs
|
|
# REQUIRE: LOGIN cleanvar
|
|
# KEYWORD: shutdown
|
|
#
|
|
# /etc/rc.conf variables:
|
|
#
|
|
# leofs_enable (bool): Set it to "YES" to enable swift.
|
|
# Default is "NO".
|
|
# leofs_servers (list): Specify servers to run as a space separated
|
|
# list of possible values:
|
|
# gateway,
|
|
# manager,
|
|
# manager_slave,
|
|
# storage.
|
|
# The aliase ALL may be used to run all servers.
|
|
# Also the list can be overriden in command line:
|
|
# any arguments but the first (if there are) are
|
|
# treated as the server list.
|
|
# Default is "ALL".
|
|
# leofs_user (string): Set it to a user name the servers are run as.
|
|
# Default is "%%LEOFS_USER%%".
|
|
|
|
. /etc/rc.subr
|
|
|
|
name=leofs
|
|
rcvar=leofs_enable
|
|
|
|
load_rc_config $name
|
|
|
|
: ${leofs_enable:="NO"}
|
|
: ${leofs_servers:="ALL"}
|
|
: ${leofs_user=%%LEOFS_USER%%}
|
|
|
|
extra_commands="status"
|
|
restart_cdm=leofs_restart
|
|
start_cmd=leofs_start
|
|
status_cmd=leofs_status
|
|
stop_cmd=leofs_stop
|
|
|
|
leofs_restart()
|
|
{
|
|
leofs_stop
|
|
leofs_start
|
|
}
|
|
|
|
leofs_start()
|
|
{
|
|
local status=0
|
|
local s
|
|
|
|
for s in ${leofs_servers}; do
|
|
echo -n "Starting leofs ${s}... "
|
|
%%PREFIX%%/sbin/leofs ${s} start
|
|
if [ $? = 0 ]; then
|
|
echo "done."
|
|
else
|
|
status=1
|
|
fi
|
|
done
|
|
|
|
return $status
|
|
}
|
|
|
|
leofs_stop()
|
|
{
|
|
local status=0
|
|
|
|
for s in ${leofs_servers}; do
|
|
echo -n "Stopping leofs ${s}... "
|
|
%%PREFIX%%/sbin/leofs ${s} stop
|
|
if [ $? = 0 ]; then
|
|
echo "done."
|
|
else
|
|
status=1
|
|
fi
|
|
done
|
|
|
|
return $status
|
|
}
|
|
|
|
leofs_status()
|
|
{
|
|
local status=0
|
|
|
|
for s in ${leofs_servers}; do
|
|
%%PREFIX%%/sbin/leofs ${s} ping > /dev/null 2>&1
|
|
if [ $? != 0 ]; then
|
|
echo "leofs ${s} is not running."
|
|
status=1
|
|
else
|
|
echo "leofs ${s} is running."
|
|
fi
|
|
done
|
|
|
|
return $status
|
|
}
|
|
|
|
cmd=$1 ; shift
|
|
|
|
if [ $# -gt 0 ]; then
|
|
leofs_servers="$@"
|
|
fi
|
|
|
|
for s in ${leofs_servers}; do
|
|
case "${s}" in
|
|
ALL)
|
|
leofs_servers="manager manager_slave storage gateway"
|
|
break
|
|
;;
|
|
gateway|manager|manager_slave|storage)
|
|
;;
|
|
*)
|
|
warn "unknown leofs server: ${s}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
for s in ${leofs_servers}; do
|
|
required_files=%%LEOFS_ETCDIR%%/leo_${s}.conf
|
|
done
|
|
|
|
run_rc_command "$cmd"
|