flashplugin -несвободный в настоящее время недоступен в стабильной версии Debian 9 Stretch. Вы можете найти его в нестабильном репозитории, но пакет по-прежнему (! )есть следующая ошибка (Я думаю, что чувак bartm умер или что-то в этом роде):
Setting up flashplugin-nonfree (1:3.7)...
ERROR: wget failed to download http_://people.debian.org/~bartm/flashplugin-nonfree/D5C0FC14/fp.26.0.0.151.sha512.amd64.pgp.asc
Вам нужно сделать это вручную для Firefox, возможно, перец работает для пользователей Chrome.
Загрузите последнюю версию подключаемого модуля в формате tar.gz с сайта Adobe .
Примечание. :Если вам это нужно для Firefox, обязательно нажмите «нужно для другого компьютера» и выберите версию npapi.
От имени пользователя root извлеките пакет tar.gz и скопируйте libflashplayer.so
в /usr/lib/flashplugin-nonfree
. Дайте файлу следующие значения разрешений/владельцев:
chmod 644 /usr/lib/flashplugin-nonfree/libflashplayer.so
chown root:root /usr/lib/flashplugin-nonfree/libflashplayer.so
Убедитесь, что соответствующая /etc/alternatives
запись верна (этого не требуется, если плагин работал правильно до обновления)
update-alternatives --list flash-mozilla.so
должен вернуть/usr/lib flashplugin-nonfree/libflashplayer.so
Если это не так, вы можете исправить это с помощью:
update-alternatives --quiet --install /usr/lib/mozilla/plugins/flash-mozilla.so flash-mozilla.so /usr/lib/flashplugin-nonfree/libflashplayer.so 50
См. вики Debian для получения дополнительной информации.
<
используется для перенаправления . Если вам нужно сравнить целые числа:
if [ "$MAX" -gt "$CPU" ]
Но $CPU
также может быть числом с плавающей запятой, а bash не может напрямую работать с числами с плавающей запятой, поэтому вам придется использоватьbc
:
if [ "$(bc -l <<< "${CPU} > ${MAX}")" -eq 1 ]
Вы также должны использовать форму $(..)
вместо устаревшей. обратные кавычки , и вы можете назначить CPU
только один раз в цикле while:
#!/bin/bash
MAX=80
while true
do
CPU="$(top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}')"
if [ "$(bc -l <<< "${CPU} > ${MAX}")" -eq 1 ]
then
echo "$CPU" # This is an example
sleep 10m
fi
done
top(1)
не лучший способ решить эту проблему. Это довольно тяжелый измерительный инструмент, сканирующий гораздо больше, чем вам нужно. Кроме того, он ориентирован на мгновенные значения, что здесь неправильно.
Вместо этого следует использовать средние значения загрузки системы , поскольку они вычисляются ядром непрерывно в течение длительных периодов времени. Это означает, что они не требуют дополнительных затрат, поэтому не влияют на ваши измерения, и на них не влияют мгновенные изменения... например, вызов top(1)
!
Вот ваш скрипт, переписанный с точки зрения средней нагрузки:
#!/bin/bash
HIGH_LOAD=6 # 80% of an 8-core system; see link above
while true
do
CURR_LOAD=$(cut -f2 -d' ' < /proc/loadavg)
if [ $CURR_LOAD -lt $HIGH_LOAD ]
then
run-background-command
fi
sleep 10m
done
Обратите внимание, что вызов sleep
перемещается за пределы условия if
:, которое вы хотите отложить в любом случае. Возможно, вы захотите вместо этого добавить else
, чтобы задержка отличалась для случаев низкой и высокой нагрузки.
Кроме того, в отличие от вашей версии, мы не повторяем проверку использования ЦП внутри цикла и снаружи.