mirror of https://github.com/samply/bridgehead.git
Added infrastructure for running ECDC-Bridgehead under systemctl
This comprises of the service file to be copied into the systemctl directory, plus Bridgehead start and stop scripts for both systemctl and for the administrator on the command line.
This commit is contained in:
parent
5b2c3d7725
commit
6887264a5b
|
@ -0,0 +1,14 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Start ECDC Bridgehead
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/srv/docker/bridgehead/restart_service.sh
|
||||||
|
ExecStop=/srv/docker/bridgehead/shutdown_service.sh
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=36000
|
||||||
|
KillMode=mixed
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi.user.target
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Start a running Bridgehead. If there is already a Bridgehead running,
|
||||||
|
# stop it first.
|
||||||
|
# This is intended to be used by systemctl.
|
||||||
|
|
||||||
|
cd /srv/docker/bridgehead
|
||||||
|
|
||||||
|
echo "git status before stop"
|
||||||
|
git status
|
||||||
|
|
||||||
|
echo "Stopping running Bridgehead, if present"
|
||||||
|
./bridgehead stop bbmri
|
||||||
|
|
||||||
|
# If "flush_blaze" is present, delete the Blaze volume before starting
|
||||||
|
# the Bridgehead again. This allows a user to upload all data, if
|
||||||
|
# requested.
|
||||||
|
if [ -f "/srv/docker/ecdc/data/flush_blaze" ]; then
|
||||||
|
docker volume rm bbmri_blaze-data
|
||||||
|
rm -f /srv/docker/ecdc/data/flush_blaze
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "git status before start"
|
||||||
|
git status | systemd-cat -p info
|
||||||
|
|
||||||
|
echo "Start the Bridgehead anew"
|
||||||
|
./bridgehead start bbmri
|
||||||
|
|
||||||
|
echo "Bridgehead has unexpectedly terminated"
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Start a Bridgehead from the command line. Upload data if requested.
|
||||||
|
# Behind the scenes we use systemctl to do the work.
|
||||||
|
|
||||||
|
# Function to print usage
|
||||||
|
print_usage() {
|
||||||
|
echo "Start a Bridghead, optionally upload data"
|
||||||
|
echo "Usage: $0 [--upload | --upload-all | --help | -h]"
|
||||||
|
echo "Options:"
|
||||||
|
echo " --upload Run Bridgehead and upload just the new CSV data files."
|
||||||
|
echo " --upload-all Run Bridgehead and upload all CSV data files."
|
||||||
|
echo " --help, -h Display this help message."
|
||||||
|
echo " No options Run Bridgehead only."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Initialize variables
|
||||||
|
UPLOAD=false
|
||||||
|
UPLOAD_ALL=false
|
||||||
|
|
||||||
|
# Parse arguments
|
||||||
|
while [[ "$#" -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
--upload)
|
||||||
|
UPLOAD=true
|
||||||
|
;;
|
||||||
|
--upload-all)
|
||||||
|
UPLOAD_ALL=true
|
||||||
|
;;
|
||||||
|
--help|-h)
|
||||||
|
print_usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Error: Unknown argument '$1'"
|
||||||
|
print_usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check for conflicting options
|
||||||
|
if [ "$UPLOAD" = true ] && [ "$UPLOAD_ALL" = true ]; then
|
||||||
|
echo "Error: you must specify either --upload or --upload-all, specifying both is not permitted."
|
||||||
|
print_usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Disable/stop standard Bridgehead systemctl services, if present
|
||||||
|
sudo systemctl disable bridgehead@bbmri.service
|
||||||
|
sudo systemctl disable system-bridgehead.slice
|
||||||
|
sudo systemctl disable bridgehead-update@bbmri.timer
|
||||||
|
sudo systemctl stop bridgehead@bbmri.service
|
||||||
|
sudo systemctl stop system-bridgehead.slice
|
||||||
|
sudo systemctl stop bridgehead-update@bbmri.timer
|
||||||
|
|
||||||
|
# Set up systemctl for EHDS2/ECDC if necessary
|
||||||
|
cp /srv/docker/bridgehead/ecdc.service /etc/systemd/system
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable ecdc.service
|
||||||
|
|
||||||
|
# Use systemctl to stop the Bridgehead if it is running
|
||||||
|
sudo systemctl stop ecdc.service
|
||||||
|
|
||||||
|
# Use files to tell the Bridgehead what to do with any data present
|
||||||
|
if [ "$UPLOAD" = true ] || [ "$UPLOAD_ALL" = true ]; then
|
||||||
|
if [ -f /srv/docker/ecdc/data/lock ]; then
|
||||||
|
rm /srv/docker/ecdc/data/lock
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$UPLOAD_ALL" = true ]; then
|
||||||
|
echo "All CSV files in /srv/docker/ecdc/data will be uploaded"
|
||||||
|
touch /srv/docker/ecdc/data/flush_blaze
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start up the Bridgehead
|
||||||
|
sudo systemctl start ecdc.service
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Shut down a running Bridgehead.
|
||||||
|
# This is intended to be used by systemctl.
|
||||||
|
|
||||||
|
cd /srv/docker/bridgehead
|
||||||
|
|
||||||
|
echo "git status before stop"
|
||||||
|
git status
|
||||||
|
|
||||||
|
echo "Stopping running Bridgehead, if present"
|
||||||
|
./bridgehead stop bbmri
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Shut down a running Bridgehead and disable auto restart.
|
||||||
|
# Behind the scenes we use systemctl to do the work.
|
||||||
|
|
||||||
|
# Function to print usage
|
||||||
|
print_usage() {
|
||||||
|
echo "Stop the running Bridgehead, disable auto-restart"
|
||||||
|
echo "Usage: $0 [--help | -h]"
|
||||||
|
echo "Options:"
|
||||||
|
echo " --help, -h Display this help message."
|
||||||
|
echo " No options Stop Bridgehead only."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Parse arguments
|
||||||
|
while [[ "$#" -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
--help|-h)
|
||||||
|
print_usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Error: Unknown argument '$1'"
|
||||||
|
print_usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# Set up systemctl for EHDS2/ECDC if necessary
|
||||||
|
cp /srv/docker/bridgehead/ecdc.service /etc/systemd/system
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable ecdc.service
|
||||||
|
|
||||||
|
# Use systemctl to stop the Bridgehead if it is running
|
||||||
|
sudo systemctl disable ecdc.service
|
||||||
|
sudo systemctl stop ecdc.service
|
||||||
|
|
Loading…
Reference in New Issue