59 lines
1.5 KiB
Bash
59 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
if [[ -n "${ATLAS_SERVICES_SH_LOADED:-}" ]]; then
|
|
return 0
|
|
fi
|
|
ATLAS_SERVICES_SH_LOADED=1
|
|
|
|
atlas_service_exists() {
|
|
local service_name="$1"
|
|
systemctl list-unit-files --type=service --no-legend "$service_name" 2>/dev/null | awk '{print $1}' | grep -qx "$service_name"
|
|
}
|
|
|
|
atlas_service_active() {
|
|
local service_name="$1"
|
|
systemctl is-active --quiet "$service_name" 2>/dev/null
|
|
}
|
|
|
|
atlas_service_status() {
|
|
local service_name="$1"
|
|
if ! atlas_service_exists "$service_name"; then
|
|
printf 'missing\n'
|
|
elif atlas_service_active "$service_name"; then
|
|
printf 'active\n'
|
|
else
|
|
printf 'inactive\n'
|
|
fi
|
|
}
|
|
|
|
atlas_service_enable() {
|
|
local service_name="$1"
|
|
if ! atlas_service_exists "$service_name"; then
|
|
atlas_log_warn "Service not found: ${service_name}"
|
|
return "${ATLAS_EXIT_PREREQ:-3}"
|
|
fi
|
|
atlas_log_info "Enabling service ${service_name}"
|
|
atlas_sudo_run systemctl enable "$service_name"
|
|
}
|
|
|
|
atlas_service_start() {
|
|
local service_name="$1"
|
|
if ! atlas_service_exists "$service_name"; then
|
|
atlas_log_warn "Service not found: ${service_name}"
|
|
return "${ATLAS_EXIT_PREREQ:-3}"
|
|
fi
|
|
atlas_log_info "Starting service ${service_name}"
|
|
atlas_sudo_run systemctl start "$service_name"
|
|
}
|
|
|
|
atlas_service_restart() {
|
|
local service_name="$1"
|
|
if ! atlas_service_exists "$service_name"; then
|
|
atlas_log_warn "Service not found: ${service_name}"
|
|
return "${ATLAS_EXIT_PREREQ:-3}"
|
|
fi
|
|
atlas_log_info "Restarting service ${service_name}"
|
|
atlas_sudo_run systemctl restart "$service_name"
|
|
}
|
|
|