#!/usr/bin/env bash output="$(needs-restarting -r 2>&1)" rc=$? if printf '%s\n' "$output" | grep -q "Требуется перезагрузка"; then zenity --question \ --title="Требуется перезагрузка" \ --text="На вашем компьютере установлены обновления. Чтобы изменения применились, нужно перезагрузить компьютер. Без перезагрузки возможна некорректная работа приложений." \ --ok-label="Перезагрузить сейчас" \ --cancel-label="Перезагрузить позже" \ --window-icon=dialog-information \ --width=520 \ --height=140 if [ $? -eq 0 ]; then reboot now fi elif printf '%s\n' "$output" | grep -q "Перезагрузка не должна потребоваться"; then exit 0 fi exit 0 -------------------------------------------------------------------------------------------------------------------------------------------------------------- Тестирование: chmod +x Reboot_dialog_box.sh ./Reboot_dialog_box.sh Если на ПК установлены пакеты "dnf-utils" и "zenity", то все должно работать. -------------------------------------------------------------------------------------------------------------------------------------------------------------- P.S. Данный скрипт писался для корректного обновления ПК средствами РЕД-АДМ. Обновление ПК состоит из двух конфигураций. Изначатьно создается и выполняется конфигурация по обновлению ОС RedOS(просто выполнение команды "dnf upgrade -y"), после чего создается дополнительно ещё одна(вот эта) конфигурация для выполнения команды "needs-restarting -r" в ОС RedOS, в которой уже установлены обновления, но сама ОС не перезагружена после их установки. Если вывод команды "needs-restarting -r" в выводе показывает в тексте слова "Требуется перезагрузка", то выходит диалоговое окно с текстовкой "На вашем компьютере установлены обновления. Чтобы изменения применились, нужно перезагрузить компьютер. Без перезагрузки возможна некорректная работа приложений." и ниже кнопками "Перезагрузить сейчас" и "Перезагрузить позже". При нажатии на кнопку "Перезагрузить сейчас" на ПК сразу же выполняется команда "reboot now", а при нажатии на кнопку "Перезагрузить позже", диалоговое окно просто закрывается. Если вывод команды "needs-restarting -r" в выводе показывает в тексте слова "Перезагрузка не должна потребоваться", то диалоговое окно не появляется и конфигурация считается отработанной.