Untitled
cion
plain_text
a year ago
5.5 kB
17
Indexable
#!/usr/bin/env bash
# List of services
SERVICES=(
"data-uploader-consumer.service"
"data-uploader-exposer.service"
"data-uploader-file-fetch.service"
"data-uploader-staging-writer.service"
"data-uploader-writeback.service"
"pulse-portal-backend.service"
"pulse-portal-ui.service"
)
# User variable
USER="wmanltc"
# Functions
# Check if the script is run by the correct user
check_user() {
if [ "$(whoami)" != "$USER" ]; then
echo "This script must be run as $USER"
exit 1
fi
}
# Display the status of all services
display_status() {
echo "Service Status:"
for service in "${SERVICES[@]}"; do
status=$(systemctl --user is-active "$service")
echo "$service: $status"
done
}
# Start a service
start_service() {
systemctl --user start "$1"
echo "$1 started."
}
# Stop a service
stop_service() {
systemctl --user stop "$1"
echo "$1 stopped."
}
# Enable a service
enable_service() {
systemctl --user enable "$1"
echo "$1 enabled."
}
# Disable a service
disable_service() {
systemctl --user disable "$1"
echo "$1 disabled."
}
# Start all services
start_all_services() {
for service in "${SERVICES[@]}"; do
start_service "$service"
done
}
# Stop all services
stop_all_services() {
for service in "${SERVICES[@]}"; do
stop_service "$service"
done
}
# Enable all services
enable_all_services() {
for service in "${SERVICES[@]}"; do
enable_service "$service"
done
}
# Disable all services
disable_all_services() {
for service in "${SERVICES[@]}"; do
disable_service "$service"
done
}
# Display menu
display_menu() {
echo "Select an option:"
echo "1. Display status of all services"
echo "2. Start a service"
echo "3. Stop a service"
echo "4. Enable a service"
echo "5. Disable a service"
echo "6. Start all services"
echo "7. Stop all services"
echo "8. Enable all services"
echo "9. Disable all services"
echo "0. Exit"
}
# Display service selection menu
select_services() {
echo "Select services (separate by space, e.g., 1 3 5):"
for i in "${!SERVICES[@]}"; do
echo "$((i+1)). ${SERVICES[$i]}"
done
read -r -a selected
selected_services=()
for i in "${selected[@]}"; do
selected_services+=("${SERVICES[$((i-1))]}")
done
echo "${selected_services[@]}"
}
# main logic
main() {
check_user
while true; do
display_menu
read -r -p "Enter your choice: " choice
case $choice in
1) display_status ;;
2)
services=($(select_services))
for service in "${services[@]}"; do
start_service "$service"
done
;;
3)
services=($(select_services))
for service in "${services[@]}"; do
stop_service "$service"
done
;;
4)
services=($(select_services))
for service in "${services[@]}"; do
enable_service "$service"
done
;;
5)
services=($(select_services))
for service in "${services[@]}"; do
disable_service "$service"
done
;;
6) start_all_services ;;
7) stop_all_services ;;
8) enable_all_services ;;
9) disable_all_services ;;
0) exit 0 ;;
*) echo "Invalid choice. Please try again." ;;
esac
done
}
main
----------------------
bash-4.4$ ./pulse_service_manager.sh
Select an option:
1. Display status of all services
2. Start a service
3. Stop a service
4. Enable a service
5. Disable a service
6. Start all services
7. Stop all services
8. Enable all services
9. Disable all services
0. Exit
Enter your choice: 2
Failed to start Select.service: Unit Select.service not found.
Select started.
Failed to start services.service: Unit services.service not found.
services started.
Invalid unit name "(separate" was escaped as "\x28separate" (maybe you should use systemd-escape?)
Failed to start \x28separate.service: Unit \x28separate.service not found.
(separate started.
Failed to start by.service: Unit by.service not found.
by started.
Invalid unit name "space," was escaped as "space\x2c" (maybe you should use systemd-escape?)
Failed to start space\x2c.service: Unit space\x2c.service not found.
space, started.
Invalid unit name "e.g.," was escaped as "e.g.\x2c" (maybe you should use systemd-escape?)
Failed to start e.g.\x2c.service: Unit e.g.\x2c.service not found.
e.g., started.
Failed to start 1.service: Unit 1.service not found.
1 started.
Failed to start 3.service: Unit 3.service not found.
3 started.
Invalid unit name "5):" was escaped as "5\x29:" (maybe you should use systemd-escape?)
Failed to start 5\x29:.service: Unit 5\x29:.service not found.
5): started.
Failed to start 1..service: Unit 1..service not found.
1. started.
data-uploader-consumer.service started.
Failed to start 2..service: Unit 2..service not found.
2. started.
data-uploader-exposer.service started.
Failed to start 3..service: Unit 3..service not found.Editor is loading...
Leave a Comment