(Это - не обязательно ответ, но я отправил как таковой должный на сумму кода. У меня нет практического опыта с whiptail
. Удалит это позже если a whiptail
пользователь отправляет протестированное решение на этом.)
Как Bash записи Shell Scripting/Whiptail:
От его README: whiptail разработан, чтобы быть вклиниванием сигнала, совместимым с диалоговым окном (1), но имеет меньше функций: некоторые диалоговые окна не реализованы, такие как tailbox, timebox, calendarbox, и т.д.
Это означает, что не обязательно необходимо решить для одного или другого. Просто обнаружьте, какой доступен, затем позволяют сценарию использовать его:
# check whether whiptail or dialog is installed
# (choosing the first command found)
read dialog <<< "$(which whiptail dialog 2> /dev/null)"
# exit if none found
[[ "$dialog" ]] || {
echo 'neither whiptail nor dialog found' >&2
exit 1
}
# just use whichever was found
"$dialog" --msgbox "Message displayed with $dialog" 0 0
(Да, вышеупомянутое обнаружение перестанет работать на инструментах, установленных в каталогах с именем, содержащим символы новой строки. Я просто сохранил это простым.)
В Linux по умолчанию приоритет ввода-вывода процесса определяется его приоритетом ЦП в соответствии с формулой
io_priority = (cpu_nice + 20) / 5
Приоритет ввода-вывода находится в диапазоне от 0 до 7, где 0 является наивысшим приоритетом. Удобство процессора варьируется от -20 до 19, причем -20 является высшим приоритетом.
Вы можете использовать команду ionice
, чтобы изменить приоритет ввода-вывода процесса. Если вы хотите, чтобы этот процесс запускался только тогда, когда система в остальном не занята, заставьте его работать в классе «простоя», а не в классе «максимальных усилий» по умолчанию:
ionice -c 3 -p $PID
ionice -c 3 mycommand --someoption
Даже с самым низким приоритетом, интенсивное использование диска процесс имеет тенденцию замедлять работу системы, по крайней мере, потому что он загрязняет кеш.
См. ionice
справочную страницу для получения дополнительной информации.