Update systemd and upstart scripts with multi-instance support

This commit is contained in:
Ben Peddell 2015-11-22 18:33:46 +10:00
parent 94854f8d09
commit 92acb88fd5
4 changed files with 31 additions and 13 deletions

View File

@ -1496,14 +1496,18 @@ getAllInstanceNames(){
}
doListAllInstances(){
echo "The following instances are available:"
for n in $(getAllInstanceNames); do
(
echo -n " @${n}: "
useConfig "$n"
echo "${arkserverroot}"
)
done
if [ "$1" == "--brief" ]; then
getAllInstanceNames
else
echo "The following instances are available:"
for n in $(getAllInstanceNames); do
(
echo -n " @${n}: "
useConfig "$n"
echo "${arkserverroot}"
)
done
fi
}
useConfig() {
@ -1638,7 +1642,7 @@ while true; do
continue
;;
list-instances)
doListAllInstances
doListAllInstances "${options[@]}"
exit
;;
--version)

View File

@ -210,6 +210,7 @@ else
if [ -f /etc/systemd/system.conf ]; then # used by systemd
mkdir -p "${INSTALL_ROOT}${LIBEXECDIR}"
cp systemd/arkmanager.init "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init"
sed -i "s|^DAEMON=\"/usr/bin/|DAEMON=\"${BINDIR}/|" "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init"
chmod +x "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init"
cp systemd/arkmanager.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service"
sed -i "s|=/usr/libexec/arkmanager/|=${LIBEXECDIR}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service"
@ -237,6 +238,7 @@ else
if [ -f /etc/systemd/system.conf ]; then # used by systemd
mkdir -p "${INSTALL_ROOT}${LIBEXECDIR}"
cp systemd/arkmanager.init "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init"
sed -i "s|^DAEMON=\"/usr/bin/|DAEMON=\"${BINDIR}/|" "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init"
chmod +x "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init"
cp systemd/arkmanager.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service"
sed -i "s|=/usr/libexec/arkmanager/|=${LIBEXECDIR}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service"
@ -270,6 +272,7 @@ else
elif [ -f /etc/systemd/system.conf ]; then # used by systemd
mkdir -p "${INSTALL_ROOT}${LIBEXECDIR}"
cp systemd/arkmanager.init "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init"
sed -i "s|^DAEMON=\"/usr/bin/|DAEMON=\"${BINDIR}/|" "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init"
chmod +x "${INSTALL_ROOT}${LIBEXECDIR}/arkmanager.init"
cp systemd/arkmanager.service "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service"
sed -i "s|=/usr/libexec/arkmanager/|=${LIBEXECDIR}/|" "${INSTALL_ROOT}/etc/systemd/system/arkmanager.service"

View File

@ -1,5 +1,14 @@
#!/bin/bash
for service in main $(grep -o '^configfile_[^=]*' /etc/arkmanager/arkmanager.cfg); do
systemctl start arkmanager@${service#configfile_}
DAEMON=/usr/bin/arkmanager
for service in $(${DAEMON} list-instances --brief); do
case "$1" in
start)
systemctl start arkmanager@${service}
;;
stop)
systemctl stop arkmanager@${service}
;;
esac
done

View File

@ -1,8 +1,10 @@
start on runlevel [345]
stop on runlevel [!345]
env DAEMON="/usr/bin/arkmanager"
script
for service in main $(grep -o '^configfile_[^=]*' /etc/arkmanager/arkmanager.cfg); do
start arkmanager-instance service=${service#configfile_}
for service in $(${DAEMON} list-instances --brief); do
start arkmanager-instance service=${service}
done
end script