-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathphp_restart.sh
92 lines (84 loc) · 3.5 KB
/
php_restart.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/usr/bin/env bash
source /root/rish/windows.sh
GREEN='\033[0;32m'
RED='\033[0;31m'
WHITE='\033[0m'
php_restart() {
clear
# Получаем список установленных версий PHP с помощью rpm и записываем в массив
local versions
mapfile -t versions < <(rpm -qa | grep php | grep -oP 'php[0-9]{2}' | sort -r | uniq)
local version
local menu_items=()
local choice
local length
# Добавление пункта для перезапуска всех версий в начало списка
menu_items=("Перезапустить все установленные php-fpm")
# Добавляем префикс и суффикс к каждой версии для создания пунктов меню
for version in "${versions[@]}"; do
menu_items+=("Перезапустить $version-php-fpm")
done
# Добавляем проверку статуса
for version in "${versions[@]}"; do
menu_items+=("Проверить статус $version-php-fpm")
done
# Вывод всех пунктов меню для проверки
vertical_menu "center" "center" 0 10 "${menu_items[@]}"
choice=$?
if ((choice == 255)); then
return
fi
clear
if ((choice == 0)); then
# Перезапуск всех версий
for version in "${versions[@]}"; do
if /opt/remi/${version}/root/usr/sbin/php-fpm -t; then
if systemctl restart "${version}-php-fpm"; then
echo -e "Версия ${GREEN}${version}${WHITE} корректно перезапущена."
echo
else
echo
echo -e "Ошибка при перезапуске ${RED}${version}-php-fpm${WHITE}. Проверьте журналы для диагностики."
echo
fi
else
echo
echo -e "Версия ${RED}${version}${WHITE} имеет проблемы в конфигурационных файлах."
echo -e "Сервис ${RED}не был перезапущен${WHITE} и продолжает работать."
echo
systemctl status "${version}-php-fpm"
fi
done
vertical_menu "current" 2 0 5 "Нажмите Enter"
return
fi
length=${#versions[@]}
if ((choice < length + 1)); then
# Пункты меню для перезапуска
version=${versions[${choice} - 1]}
if /opt/remi/${version}/root/usr/sbin/php-fpm -t; then
if systemctl restart "${version}-php-fpm"; then
echo -e "Версия ${GREEN}${version}${WHITE} корректно перезапущена."
echo
else
echo
echo -e "Ошибка при перезапуске ${RED}${version}-php-fpm${WHITE}. Проверьте журналы для диагностики."
echo
fi
else
echo
echo -e "Версия ${RED}${version}${WHITE} имеет проблемы в конфигурационных файлах."
echo -e "Сервис ${RED}не был перезапущен${WHITE} и продолжает работать."
echo
systemctl status "${version}-php-fpm"
fi
else
version=${versions[${choice} - $length - 1]}
systemctl status "${version}-php-fpm"
fi
vertical_menu "current" 2 0 5 "Нажмите Enter"
}
# Если идет прямой вызов - выполняем функцию. Если идет подключение через source - то ничего не делаем
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
php_restart
fi