При анализе кода Вы отправили также задницу acpi_call
приводит меня к заключение, что самые вероятные кандидаты должны быть:
echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call
выключить карту и
echo '\_SB.PCI0.PEG0.PEGP._ON' > /proc/acpi/call
снова включать его снова.
Необходимо быть в безопасности протестировать их, как README
для acpi_call
состояния:
ДОЛЖНО быть нормально тестировать все методы
И \_SB.PCI0.PEG0.PEGP._OFF
один из методов, протестированных в их test_off.sh
сценарий. В то же время это - единственное ..._OFF
метод, появляющийся в Вашем коде ACPI.
Если бы они не работают, как Вы ожидали бы, Вы могли бы попробовать вместо этого \_SB.PCI0.PEG0.PEGP._PS3
для приостановки и \_SB.PCI0.PEG0.PEGP._PS0
для возобновления. В Вашем коде эти методы, кажется, звонят ..._OFF
и .._ON
с некоторыми дополнительными тестами и т.д. Их имена также предлагают отношение к переключению между питанием на/приостанавливать состояниях.
Использование параллели GNU,
$ parallel -j ${jobs} wget < urls.txt
или xargs
от GNU Findutils,
$ xargs -n 1 -P ${jobs} wget < urls.txt
где ${jobs}
максимальное количество wget
Вы хотите позволить работать одновременно (установка -n
кому: 1
получить тот wget
вызов на строку в urls.txt
). Без -j
/-P
, parallel
выполнит столько же заданий за один раз сколько ядра процессора (который не обязательно имеет смысл для wget
связанный сетью IO), и xargs
будет работать по одному.
Одна хорошая функция это parallel
имеет xargs
сохраняет вывод одновременно рабочих заданий разделенным, но если Вы не заботитесь об этом, xargs
более вероятно, будет предварительно установлен.
aria2 делает это.
http://sourceforge.net/apps/trac/aria2/wiki/UsageExample#Downloadfileslistedinafileconcurrently
Пример: aria2c http://example.org/mylinux.iso
Можно реализовать то использование Python и pycurl библиотека. pycurl библиотека имеет "много" интерфейс, который реализует его собственный ровный цикл, который включает несколько одновременных соединений.
Однако интерфейс является довольно подобным C и поэтому немного громоздким по сравнению с другим, большим количеством "Pythonic", кодом.
Я записал обертку для него, которая создает более полный подобный браузеру клиент сверху его. Можно использовать это в качестве примера. Посмотрите pycopia. Модуль WWW.client. HTTPConnectionManager переносит много интерфейс.
Часть страницы справочника Параллели GNU содержит пример параллельного рекурсивного wget.
https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Breadth-first-parallel-web-crawler-mirrorer
HTML загружается дважды: Однажды для извлечения ссылок и однажды для загрузки на диск. Другое содержание только загружается однажды.
Если Вам не нужен ответ ephemient's рекурсивности, кажется очевидным.
Жертвы Вашей параллельной загрузки не будут удивлены: они ожидают, что одно соединение для обслуживания каждого клиента, настраивая несколько соединений означает меньше клиентов в целом. (Т.е. это считают грубым поведением).
Это работает и не будет вызывать локальный или удаленный DoS при правильной настройке:
(bandwidth=5000 jobs=8; \
parallel \
--round \
-P $jobs \
--nice +5 \
--delay 2 \
--pipepart \
--cat \
-a urls.txt \
wget \
--limit-rate=$((bandwidth/jobs))k \
-w 1 \
-nv \
-i {} \
)
jobs
зависит от многих факторов: задержка пути, пропускная способность пути, политики удаленного сервера, и т.д. – dhchdhd 18.09.2017, 12:13