Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
executable file 150 lines (109 sloc) 2.71 KB
#!/bin/bash
CMD_IP="/sbin/ip"
CMD_MXS2MXSRV="/usr/sbin/mxstartup2mxconfig"
RUNDIR="/run/mariux"
# expands *-pattern in pathnames to null if no matching files are found..
shopt -s nullglob
# exit on any error
set -e
function mxsrv_start_one() {
local cfg=$1
local -i i mip mfwd
echo "starting ${cfg} .."
. ${cfg}
test "$MX_SRV_USER" = "-" && MX_SRV_USER="root"
case "${MX_SRV_SCRIPT}" in
*.service)
systemctl start "${MX_SRV_SCRIPT}" || true
;;
*)
su - ${MX_SRV_USER} -c "${MX_SRV_SCRIPT} start" &
;;
esac
mv ${cfg}{,.r}
unset -v MX_SRV_USER MX_SRV_SCRIPT
}
function mxsrv_stop_one() {
local cfg=$1
local -i i mip mfwd
echo "stopping ${cfg} .."
. ${cfg}
test "$MX_SRV_USER" = "-" && MX_SRV_USER="root"
case "${MX_SRV_SCRIPT}" in
*.service)
systemctl stop "${MX_SRV_SCRIPT}" || true
;;
*)
su - ${MX_SRV_USER} -c "${MX_SRV_SCRIPT} stop" &
;;
esac
rm ${cfg}
unset -v MX_SRV_USER MX_SRV_SCRIPT
}
function mxsrv_start() {
local cfg
local pattern=$1
: ${pattern:=*}
for cfg in ${RUNDIR}/mxservice.${pattern}.cfg ; do
if [ -e ${cfg}.r ] ; then
echo >&2 "skipping $cfg: already running.."
continue
fi
if [ ! -r ${cfg} ] ; then
echo >&2 "skipping $cfg: can't read file"
continue
fi
if [ ! -O ${cfg} ] ; then
echo >&2 "skipping $cfg: possible hack attempt?"
continue
fi
mxsrv_start_one ${cfg}
done
}
function mxsrv_stop() {
local cfg
local pattern=$1
: ${pattern:=*}
for cfg in ${RUNDIR}/mxservice.${pattern}.cfg.r ; do
if [ ! -r ${cfg} ] ; then
echo >&2 "skipping $cfg: can't read file"
continue
fi
if [ ! -O ${cfg} ] ; then
echo >&2 "skipping $cfg: possible hack attempt?"
continue
fi
mxsrv_stop_one ${cfg}
done
}
function create_run_dir_if_not_exists() {
if [ ! -d ${RUNDIR} ] ; then
mkdir -m 0700 ${RUNDIR}
fi
if [ ! -O ${RUNDIR} ] ; then
echo >&2 "${RUNDIR}: wrong owner: possible hack attempt? exiting.."
exit 1
fi
}
function create_mxservice() {
${CMD_MXS2MXSRV} ${RUNDIR} >/dev/null
}
##############################################################################
create_run_dir_if_not_exists
case "${1}" in
start)
create_mxservice
mxsrv_start $2
;;
stop)
mxsrv_stop $2
;;
restart)
mxsrv_stop $2
create_mxservice
mxsrv_start $2
;;
*)
echo >&2 "$0 start|stop"
;;
esac