40 lines
1.1 KiB
Bash
Executable File
40 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Define the service name
|
|
SERVICE_NAME="actions.runner.sunnypilot.$(uname -n)"
|
|
|
|
# Function to control the service
|
|
control_service() {
|
|
local action=$1 # Store the function argument in a local variable
|
|
sudo systemctl $action ${SERVICE_NAME}
|
|
}
|
|
|
|
service_exists_and_is_loaded() {
|
|
sudo systemctl status ${SERVICE_NAME} &>/dev/null
|
|
if [[ $? -ne 4 ]]; then
|
|
return 0 # Service is known to systemd (i.e., loaded)
|
|
else
|
|
return 1 # Service is unknown to systemd (i.e., not loaded)
|
|
fi
|
|
}
|
|
|
|
# Check for required argument
|
|
if [[ -z $1 ]] || { [[ $1 != "start" ]] && [[ $1 != "stop" ]]; }; then
|
|
echo "Usage: $0 {start|stop}"
|
|
exit 1
|
|
fi
|
|
|
|
# Store the script argument in a descriptive variable
|
|
ACTION=$1
|
|
|
|
# Trap EXIT signal (Ctrl+C) and stop the service
|
|
trap 'control_service stop ; exit' SIGINT SIGKILL EXIT
|
|
|
|
# Enter the main loop
|
|
while true; do
|
|
# Check if the service is actually present on the system
|
|
if service_exists_and_is_loaded; then
|
|
control_service $ACTION # Call the function with the specified action
|
|
fi
|
|
sleep 1 # Pause before the next iteration
|
|
done |