48 lines
1.5 KiB
Bash
48 lines
1.5 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
set -o pipefail
|
|
|
|
ABS_LOG_DIR="/var/log/audiobookshelf"
|
|
|
|
declare -r init_type='auto'
|
|
declare -ri no_rebuild='0'
|
|
|
|
start_service () {
|
|
: "${1:?'Service name was not defined'}"
|
|
declare -r service_name="$1"
|
|
|
|
if hash systemctl 2> /dev/null; then
|
|
if [[ "$init_type" == 'auto' || "$init_type" == 'systemd' ]]; then
|
|
{
|
|
systemctl enable "$service_name.service" && \
|
|
systemctl start "$service_name.service"
|
|
} || echo "$service_name could not be registered or started"
|
|
fi
|
|
elif hash service 2> /dev/null; then
|
|
if [[ "$init_type" == 'auto' || "$init_type" == 'upstart' || "$init_type" == 'sysv' ]]; then
|
|
service "$service_name" start || echo "$service_name could not be registered or started"
|
|
fi
|
|
elif hash start 2> /dev/null; then
|
|
if [[ "$init_type" == 'auto' || "$init_type" == 'upstart' ]]; then
|
|
start "$service_name" || echo "$service_name could not be registered or started"
|
|
fi
|
|
elif hash update-rc.d 2> /dev/null; then
|
|
if [[ "$init_type" == 'auto' || "$init_type" == 'sysv' ]]; then
|
|
{
|
|
update-rc.d "$service_name" defaults && \
|
|
"/etc/init.d/$service_name" start
|
|
} || echo "$service_name could not be registered or started"
|
|
fi
|
|
else
|
|
echo 'Your system does not appear to use systemd, Upstart, or System V, so the service could not be started'
|
|
fi
|
|
}
|
|
|
|
# Create log directory if not there and set ownership
|
|
if [ ! -d "$ABS_LOG_DIR" ]; then
|
|
mkdir -p "$ABS_LOG_DIR"
|
|
chown -R 'audiobookshelf:audiobookshelf' "$ABS_LOG_DIR"
|
|
fi
|
|
|
|
start_service 'audiobookshelf'
|