Планирование в Linux: выполните задачу, когда компьютер будет неактивен (= никакой ввод данных пользователем)

Я только что попробовал, и моя папка успешно создана. Ура!

использовать

const absolutePath = `/storage/emulated/0/${currentDirectory}`

вместо

const absolutePath = `/storage/emulated/0/MyApp/${currentDirectory}`
8
задан wheleph 7 March 2009 в 20:46
поделиться

7 ответов

Когда рассматриваемая машина является рабочим столом, Вы могли сцепить запустить/остановить сценарий в экранную заставку так, чтобы процесс был остановлен, когда экранная заставка неактивна и наоборот.

12
ответ дан 5 December 2019 в 06:55
поделиться

Это трудно, чтобы принять меры, чтобы процесс только присутствовал, когда система в других отношениях неактивна.

На самом деле запуск программы в тех условиях не является твердым битом. Необходимо принять меры, чтобы программа была чисто закрыта и выяснить, как и когда сделать это.

Необходимо смочь различать собственное использование ЦП того процесса и использование других программ, которые могли бы работать, так, чтобы можно было сказать, "неактивна" ли система правильно.

Для процесса намного легче только быть запланированным, когда система в других отношениях неактивна. Просто используйте 'хорошую' команду для запуска клиента Folding@Home.

Однако это не решит проблему недостаточной RAM. Если Вам включили область подкачки, система должна смочь выгрузить любые низкоприоритетные процессы, таким образом, что они не используют и реальные ресурсы, но остерегаются большого хита на диске ввода-вывода каждый раз, когда Ваш клиент Folding@Home загружает и из RAM.

p.s. RAM является очень дешевой в данный момент...

p.p.s. видят эту статью

4
ответ дан 5 December 2019 в 06:55
поделиться

можете быть Вы, должен установить на неактивной задаче самый низкий приоритет через хороший.

4
ответ дан 5 December 2019 в 06:55
поделиться

Ваша попытка хотеть посмотреть на несколько вещей определить 'неактивный' и также исследовать sysinfo () вызов (ссылка указывает на различие в структуре, которую это заполняет между различными версиями ядра).

Linux не управляет памятью типичным способом. Только посмотрите на загрузки, взгляд на память. В частности,/proc/meminfo запустили замечательную строку с Committed_AS, который показывает Вам, сколько памяти ядро на самом деле обещало другим процессам. Сравните это с тем, что Вы узнали из sysinfo, и Вы могли бы понять, что одно мелкое среднее число загрузки 0,00 не означает, что его время для запущения некоторой программы, которая хочет выделить 256 МБ памяти, начиная с ядра, может действительно распродавать. Отметьте, все значения, заполненные sysinfo (), доступны через/proc, sysinfo () просто более легкий способ получить их.

Вы также хотели бы посмотреть на то, сколько времени каждое ядро провело в IOWAIT начиная с начальной загрузки, которая является еще более сильным индикатором того, если необходимо выполнить пожирателя ресурсов ввода-вывода. Захватите ту информацию в/proc/stat, первая строка содержит совокупное количество всего ЦП. IOWAIT находится в 6'th поле. Конечно, если бы Вы намереваетесь установить привязку на единственный ЦП, только что ЦП представлял бы интерес (все еще шестое поле в единицах USER_HZ или обычно в 100'ths секунды). Среднее число это против btime, также найденного в/proc/stat.

Короче говоря, только посмотрите на средние числа загрузки.

Править

Вы не должны принимать отсутствие неактивных средств ввода данных пользователем.. задания крона имеют тенденцию работать.. услуги общего пользования время от времени облагаются налогом и т.д. Неактивный остается Вашим лучшим предположением на основе чтения значений (или возможно больше), что я упомянул выше.

РЕДАКТИРОВАНИЕ 2

Рассмотрение значений кнопки в/proc/sys/vm также дает Вам хороший признак того, что думает пользователь, неактивно, в особенности swappiness. Я понимаю Ваше выполнение этого только на Вашем собственном поле, но это - авторитетная Wiki, и заголовок вопроса универсален :)

2
ответ дан 5 December 2019 в 06:55
поделиться

Файл/proc/loadavg имеет системы текущая загрузка. Можно просто записать сценарий удара для проверки его, и если ее низкие затем выполняют команду. Затем можно добавить его к/etc/cron.d для выполнения его периодически.

Этот файл содержит информацию о системной нагрузке. Первые три числа представляют количество активных задач в системе - процессы, которые на самом деле работают - усредненный по последнему 1, 5, и 15 минут. Следующая запись показывает количество мгновенного тока выполнимых задач - процессы, которые, как в настоящее время планируют, будут работать вместо того, чтобы быть заблокированными в системном вызове - и общее количество процессов в системе. Заключительная запись является идентификатором процесса процесса, который последний раз работал.

Пример произвел:

0.55 0.47 0.43 1/210 12437
1
ответ дан 5 December 2019 в 06:55
поделиться

См. Этот поток для сценария perl, который проверяет, когда система находится в режиме ожидания (через заставку gnome).
Вы можете запускать команды при запуске и останове холостого хода.
Я использую это с некоторыми скриптами для изменения предпочтений BOINC при простое
(чтобы дать BOINC больше памяти и использования процессора).

Perl-скрипт на форумах ubuntu

0
ответ дан 5 December 2019 в 06:55
поделиться

Если вы используете GNOME, взгляните на это:

https: // wiki .гном. org / Attic / GnomeScreensaver / FrequencyAskedQuestions

1
ответ дан 5 December 2019 в 06:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: