Как выйти из фонового режима winrar

Обновлено: 08.07.2024

Некоторые приложения работают в фоновом режиме, потребляя ресурсы и не принося пользу. Чтобы снизить нагрузку на систему, откажемся от программ, которые нам не нужны. Сделать это можно с помощью стандартных средств Windows.

Отключение в «Параметрах»

Самый очевидный способ — отключить все или некоторые фоновые приложения в «Параметрах» Windows 10.

  1. Открываем «Параметры».
  2. Переходим в раздел «Конфиденциальность».
  3. Выбираем вкладку «Фоновые приложения».
  4. Находим сверху опцию «Разрешить приложениям работать в фоновом режиме».

Здесь есть два варианта. Первый — перевести ползунок в положение «Выкл» и запретить всем приложениям работать в фоновом режиме.

Запрещаем любым приложениям работать в фоновом режиме Запрещаем любым приложениям работать в фоновом режиме

Второй вариант — оставить разрешение, пролистать страницу вниз и отключить отдельные приложения. Например, мне нужно, чтобы фоном работал виджет «Погода», но нет никакой нужды в постоянном включении «Новостей» или «Советов».

Windows 10 предоставляет каждому пользователю право самостоятельно настроить список программ, которые могут оставаться включенными даже в неактивном состоянии.

Запрет через реестр

Отключение через «Параметры» не всегда срабатывает — некоторые пользователи сообщают о том, что после перезагрузки настройки сбиваются и приложения продолжают работать в фоновом режиме. Чтобы наверняка ограничить их деятельность, установим запрет через реестр.

  1. Запускаем редактор реестра (Win+R — regedit).
  2. Переходим в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppPrivacy. Если такой директории нет, то кликаем правой кнопкой по папке Windows, выбираем «Создать» — «Новый раздел» и задаём имя «AppPrivacy».

3. Внутри нам нужен параметр «LetAppsRunInBackground». Открываем его свойства двойным кликом и выставляем значение «2». Если параметра нет, то кликаем правой кнопкой по свободному месту в правой части редактора и выбираем «Создать» — «DWORD (32 бита)». Задаём имя «LetAppsRunInBackground» и значение «2».

4. Закрываем редактор реестра.

Чтобы конфигурация вступила в силу, перезагружаем компьютер. Такое изменение реестра — аналог выключения разрешения на работу приложений в фоновом режиме. Установить ограничения выборочно не получится — такая возможность есть только в «Параметрах».

Использование командной строки

Изменения в реестр можно внести через командную строку , запущенную с правами администратора. Открываем консоль и выполняем последовательно следующие команды (после ввода каждой нажимаем на Enter):

HKCU\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications /v GlobalUserDisabled /t REG_DWORD /d 1 /fReg Add HKCU\Software\Microsoft\Windows\CurrentVersion\Search /v BackgroundAppGlobalToggle /t REG_DWORD /d 0 /f

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

Изменение групповых политик

Перечисленные выше способы универсальны для всех редакций Windows 10. Однако на Pro, Enterprise и Education есть ещё одна возможность — редактирование групповых политик.

  1. Нажимаем Win+R и вводим запрос «gpedit.msc» для запуска редактора локальной групповой политики.
  2. Проходим по пути «Конфигурация компьютера» — «Компоненты Windows» — «Конфиденциальность приложения».
  3. Находим в списке параметр «Разрешить приложениям для Windows работать в фоновом режиме» и открываем его свойства двойным кликом.

4. Задаем для параметра значение «Включено».

5. В строке «По умолчанию для всех приложений» выбираем опцию «Запретить принудительно».

Перезагружать систему не нужно — изменения сразу вступают в силу. Запрет устанавливается на все программы.

image


В прошлый раз мы говорили о работе с потоками ввода, вывода и ошибок в bash-скриптах, о дескрипторах файлов и о перенаправлении потоков. Сейчас вы знаете уже достаточно много для того, чтобы писать что-то своё. На данном этапе освоения bash у вас вполне могут возникнуть вопросы о том, как управлять работающими скриптами, как автоматизировать их запуск.

До сих пор мы вводили имена скриптов в командную строку и нажимали Enter, что приводило к немедленному запуску программ, но это — не единственный способ вызова сценариев. Сегодня мы поговорим о том как скрипт может работать с сигналами Linux, о различных подходах к запуску скриптов и к управлению ими во время работы.

Сигналы Linux

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

Код сигнала
Название
Описание
1
SIGHUP
Закрытие терминала
2
SIGINT
Сигнал остановки процесса пользователем с терминала (CTRL + C)
3
SIGQUIT
Сигнал остановки процесса пользователем с терминала (CTRL + \) с дампом памяти
9
SIGKILL
Безусловное завершение процесса
15
SIGTERM
Сигнал запроса завершения процесса
17
SIGSTOP
Принудительная приостановка выполнения процесса, но не завершение его работы
18
SIGTSTP
Приостановка процесса с терминала (CTRL + Z), но не завершение работы
19
SIGCONT
Продолжение выполнения ранее остановленного процесса

Если оболочка bash получает сигнал SIGHUP когда вы закрываете терминал, она завершает работу. Перед выходом она отправляет сигнал SIGHUP всем запущенным в ней процессам, включая выполняющиеся скрипты.

Сигнал SIGINT приводит к временной остановке работы. Ядро Linux перестаёт выделять оболочке процессорное время. Когда это происходит, оболочка уведомляет процессы, отправляя им сигнал SIGINT .

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

Отправка сигналов скриптам

Оболочка bash позволяет вам отправлять скриптам сигналы, пользуясь комбинациями клавиш на клавиатуре. Это оказывается очень кстати если нужно временно остановить выполняющийся скрипт или завершить его работу.

Завершение работы процесса

Комбинация клавиш CTRL + C генерирует сигнал SIGINT и отправляет его всем процессам, выполняющимся в оболочке, что приводит к завершению их работы.

Выполним в оболочке такую команду:


После этого завершим её работу комбинацией клавиш CTRL + C .


Завершение работы процесса с клавиатуры

Временная остановка процесса

Комбинация клавиш CTRL + Z позволяет сгенерировать сигнал SIGTSTP , который приостанавливает работу процесса, но не завершает его выполнение. Такой процесс остаётся в памяти, его работу можно возобновить. Выполним в оболочке команду:


И временно остановим её комбинацией клавиш CTRL + Z .


Приостановка процесса

Число в квадратных скобках — это номер задания, который оболочка назначает процессу. Оболочка рассматривает процессы, выполняющиеся в ней, как задания с уникальными номерами. Первому процессу назначается номер 1, второму — 2, и так далее.

Если вы приостановите задание, привязанное к оболочке, и попытаетесь выйти из неё, bash выдаст предупреждение.

Просмотреть приостановленные задания можно такой командой:


Список заданий

В колонке S , выводящей состояние процесса, для приостановленных процессов выводится T . Это указывает на то, что команда либо приостановлена, либо находится в состоянии трассировки.

Если нужно завершить работу приостановленного процесса, можно воспользоваться командой kill . Подробности о ней можно почитать здесь.

Выглядит её вызов так:

Перехват сигналов

Для того, чтобы включить в скрипте отслеживание сигналов Linux, используется команда trap . Если скрипт получает сигнал, указанный при вызове этой команды, он обрабатывает его самостоятельно, при этом оболочка такой сигнал обрабатывать не будет.

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

Рассмотрим пример, в котором показано, как при вызове команды trap задаётся код, который надо выполнить, и список сигналов, разделённых пробелами, которые мы хотим перехватить. В данном случае это всего один сигнал:


Перехват сигналов

Каждый раз, когда вы нажимаете клавиши CTRL + C , скрипт выполняет команду echo , указанную при вызове trace вместо того, чтобы позволить оболочке завершит его работу.

Перехват сигнала выхода из скрипта

Перехватить сигнал выхода из скрипта можно, использовав при вызове команды trap имя сигнала EXIT :


Перехват сигнала выхода из скрипта

При выходе из скрипта, будь то нормальное завершение его работы или завершение, вызванное сигналом SIGINT , сработает перехват и оболочка исполнит команду echo .

Модификация перехваченных сигналов и отмена перехвата

Для модификации перехваченных скриптом сигналов можно выполнить команду trap с новыми параметрами:


Модификация перехвата сигналов

После модификации сигналы будут обрабатываться по-новому.

Перехват сигналов можно и отменить, для этого достаточно выполнить команду trap , передав ей двойное тире и имя сигнала:


Если скрипт получит сигнал до отмены перехвата, он обработает его так, как задано в действующей команде trap . Запустим скрипт:


И нажмём CTRL + C на клавиатуре.


Сигнал, перехваченный до отмены перехвата

Первое нажатие CTRL + C пришлось на момент исполнения скрипта, когда перехват сигнала был в силе, поэтому скрипт исполнил назначенную сигналу команду echo . После того, как исполнение дошло до команды отмены перехвата, команда CTRL + C сработала обычным образом, завершив работу скрипта.

Выполнение сценариев командной строки в фоновом режиме

Иногда bash-скриптам требуется немало времени для выполнения некоей задачи. При этом вам может понадобиться возможность нормально работать в командной строке, не дожидаясь завершения скрипта. Реализовать это не так уж и сложно.

Если вы видели список процессов, выводимый командой ps , вы могли заметить процессы, которые выполняются в фоне и не привязаны к терминалу.
Напишем такой скрипт:


Запустим его, указав после имени символ амперсанда ( & ):


Это приведёт к тому, что он будет запущен как фоновый процесс.


Запуск скрипта в фоновом режиме


Список процессов

При таком подходе, если выйти из терминала, скрипт, выполняющийся в фоне, так же завершит работу.

Что если нужно, чтобы скрипт продолжал работать и после закрытия терминала?

Выполнение скриптов, не завершающих работу при закрытии терминала

Скрипты можно выполнять в фоновых процессах даже после выхода из терминальной сессии. Для этого можно воспользоваться командой nohup . Эта команда позволяет запустить программу, блокируя сигналы SIGHUP , отправляемые процессу. В результате процесс будет исполняться даже при выходе из терминала, в котором он был запущен.

Применим эту методику при запуске нашего скрипта:


Вот что будет выведено в терминал.


Команда nohup

Обратите внимание на то, что при запуске нескольких скриптов из одной и той же директории то, что они выводят, попадёт в один файл nohup.out .

Просмотр заданий

Команда jobs позволяет просматривать текущие задания, которые выполняются в оболочке. Напишем такой скрипт:


И временно остановим комбинацией клавиш CTRL + Z .


Запуск и приостановка скрипта

Запустим тот же скрипт в фоновом режиме, при этом перенаправим вывод скрипта в файл так, чтобы он ничего не выводил на экране:


Выполнив теперь команду jobs , мы увидим сведения как о приостановленном скрипте, так и о том, который работает в фоне.


Получение сведений о скриптах

Ключ -l при вызове команды jobs указывает на то, что нам нужны сведения об ID процессов.

Перезапуск приостановленных заданий

Для того, чтобы перезапустить скрипт в фоновом режиме, можно воспользоваться командой bg .


Нажмём CTRL + Z , что временно остановит его выполнение. Выполним следующую команду:


Теперь скрипт выполняется в фоновом режиме.

Если у вас имеется несколько приостановленных заданий, для перезапуска конкретного задания команде bg можно передать его номер.

Для перезапуска задания в обычном режиме воспользуйтесь командой fg :

Планирование запуска скриптов

Linux предоставляет пару способов запуска bash-скриптов в заданное время. Это команда at и планировщик заданий cron .

Вызов команды at выглядит так:


Эта команда распознаёт множество форматов указания времени.

  • Стандартный, с указанием часов и минут, например — 10:15.
  • С использованием индикаторов AM/PM, до или после полудня, например — 10:15PM.
  • С использованием специальных имён, таких, как now , noon , midnight .
  • Стандартный формат указания даты, при котором дата записывается по шаблонам MMDDYY , MM/DD/YY , или DD.MM.YY .
  • Текстовое представление даты, например, Jul 4 или Dec 25 , при этом год можно указать, а можно обойтись и без него.
  • Запись вида now + 25 minutes .
  • Запись вида 10:15PM tomorrow .
  • Запись вида 10:15 + 7 days .


Планирование заданий с использованием команды at

Ключ -M при вызове at используется для отправки того, что выведет скрипт, по электронной почте, если система соответствующим образом настроена. Если отправка электронного письма невозможна, этот ключ просто подавит вывод.

Для того чтобы посмотреть список заданий, ожидающих выполнения, можно воспользоваться командой atq :


Список заданий, ожидающих выполнения

Удаление заданий, ожидающих выполнения

Удалить задание, ожидающее выполнения, позволяет команда atrm . При её вызове указывают номер задания:


Удаление задания

Запуск скриптов по расписанию

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

В Linux имеется утилита crontab , позволяющая планировать запуск скриптов, которые нужно выполнять регулярно.

Crontab выполняется в фоне и, основываясь на данных в так называемых cron-таблицах, запускает задания по расписанию.

Для того, чтобы просмотреть существующую таблицу заданий cron , воспользуйтесь такой командой:


При планировании запуска скрипта по расписанию crontab принимает данные о том, когда нужно выполнить задание, в таком формате:


Например, если надо, чтобы некий скрипт с именем command выполнялся ежедневно в 10:30, этому будет соответствовать такая запись в таблице заданий:


Здесь универсальный символ « * », использованный для полей, задающих день месяца, месяц и день недели, указывает на то, что cron должен выполнять команду каждый день каждого месяца в 10:30.

Если, например, надо, чтобы скрипт запускался в 4:30PM каждый понедельник, понадобится создать в таблице заданий такую запись:


Нумерация дней недели начинается с 0, 0 означает воскресенье, 6 — субботу. Вот ещё один пример. Здесь команда будет выполняться в 12 часов дня в первый день каждого месяца.


Нумерация месяцев начинается с 1.
Для того чтобы добавить запись в таблицу, нужно вызвать crontab с ключом -e :


Затем можно вводить команды формирования расписания:


Благодаря этой команде скрипт будет вызываться ежедневно в 10:30. Если вы столкнётесь с ошибкой «Resource temporarily unavailable», выполните нижеприведённую команду с правами root-пользователя:


Организовать периодический запуск скриптов с использованием cron можно ещё проще, воспользовавшись несколькими специальными директориями:


Если поместить файл скрипта в одну из них, это приведёт, соответственно, к его ежечасному, ежедневному, еженедельному или ежемесячному запуску.

Запуск скриптов при входе в систему и при запуске оболочки

Автоматизировать запуск скриптов можно, опираясь на различные события, такие, как вход пользователя в систему или запуск оболочки. Тут можно почитать о файлах, которые обрабатываются в подобных ситуациях. Например, это следующие файлы:


Для того, чтобы запускать скрипт при входе в систему, поместите его вызов в файл .bash_profile .

А как насчёт запуска скриптов при открытии терминала? Организовать это поможет файл .bashrc .

Итоги

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

Режимы управления файлами и архивами

Оболочка WinRAR имеет два основных режима: режим управления файлами и режим управления архивами.

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

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

В обоих режимах можно изменить текущую папку (на диске или в архиве). Для перехода в родительскую папку нажмите клавишу < Backspace > или < Ctrl + PgUp >, либо дважды щёлкните мышью на папке ".." в списке файлов. Если вы сделаете это в корневой папке архива, то закроете архив и перейдёте в ту папку на диске, в которой он находится. Для перехода в другую папку нажмите < Enter >, < Ctrl + PgDn > или дважды щёлкните мышью на этой папке. Аналогичное действие на файле архива приведёт к открытию архива. Для перехода в корневую папку диска или архива служит комбинация клавиш < Ctrl +\>.

Для входа в режим управления файлами запустите WinRAR двойным щелчком на его значке или введите в командной строке " WinRAR " без параметров.

Для входа в режим управления архивами запустите WinRAR в режиме управления файлами, поместите курсор на выбранный архив и нажмите < Enter > (это же действие выполняется при выборе пункта " Открыть архив " в меню "Файл" или при двойном щелчке мышью на имени архива). Кроме того, вход в режим управления архивами происходит при нажатии на архиве < Enter > или двойном щелчке мышью в оболочке Windows (в Проводнике или на Рабочем столе), но только в том случае, если WinRAR ассоциирован с архивами (что делается по умолчанию во время установки). Связать WinRAR с архивами несложно и после установки — для этого служит диалог "Параметры интеграции". И, наконец, зайти в нужный архив также можно непосредственно из командной строки, передав WinRAR в командной строке в виде единственного параметра имя этого архива.

Финальная английская версия: 5.40 x86 | x64
Финальная русская версия: 5.40 x86 | x64

    Другие архиваторы:
  • FreeArc
  • 7-Zip
  • PowerArchiver
  • Bandizip

Кстати, и для Far Manager так же необходимо её обновление.

11Gb каждый. В каждом архиве всего один файл (


20Gb). Начинаю распаковку, жму "Фоновый режим", программа послушно прячется в трей, но CPU всё равно занят на 98% до самого окончания распаковки. Этот глюк возникает из-за объёма архива, или же это особенности работы с 7z?

reenoip
В диспетчере задач (зажми CTRL SHIFT ESCAPE) выбираем WinRar и жмакаем «задать соответствие».
Одно ядро отжимаем. Должно, по идее, помочь.

1) Во всех ОС термин "задача переднего плана" обозначает интерактивно взаимодействующую с оператором задачу, а "фоновая задача" обозначает "задача которая во время исполнения не нуждается во взаимодействии с оператором с момента запуска до момента завершения".

2) Выделение задаче ресурсов зависит от её потребностей, приоритета и наличия в системе доступных для распределения ресурсов. Этим в системе занимается планировщик задач. Выше приоритет? Если нет других претендентов то данная задача считается чаще, не более.

3) Перевод ресурсоёмкой задачи в фоновый режим не означает что её потребности в ресурсах сократятся. Просто она будет считаться без вывода своих окошек на экран и только по завершении отчитается.

4) А кто вам сказал что архивы распаковываются мгновенно? Многие ресурсоёмкие приложения часто держат часть своего исполняемого кода в ОЗУ для ускорения запуска, но М$ Офис не такой - этот сразу выскакивает как чёртик из шкатулки едва позовут и память ОС не насилует. Не просто так ходит бородатая и возрастом с динозавров шутка - "Для секретарши ставим ВинВорд шеллом - ей хватит до пенсии. ".

5) Посчитайте скорость распаковки и сравните с быстродействием архиватора именно на вашей машине, а после посмотрите откуда у вас за "5 - 6 секунд" офис запускается? Для интереса выгрузите его со всеми его модулями из ОЗУ и посмотрите сколько времени он будет тогда запускаться? Думаю раз в пять - шесть дольше, если не более. НО это же Микрософт Ворд Священная Реликвия всех времён и народов.

Не думаю что узкое место в данном случае именно CPU. У самого на стенде стоит Е5400@ 2,7 GHz на связке iG41 + ICH7 с парой однотипных 1 Гб модулей Samsung DDR2-800 6-6-6-18 и работает довольно шустро, в результате чего при последовательном чтении больших файлов (> 100 Мб) диски Барракуда 11 обеспечивают скорость I/O близкую к предельной

65 Мб/с. Но, если для чипсетов Intel 3-й/4-й серий ставить память с частой синхронизации не 1/2 FSB, то скорость работы дисковой подсистемы снижается в разы - на iG35 с этим же CPU и памятью DDR2-533 пиковая скорость тех же самых накопителей снижается до 27 - 30 Мб/с. Это особенность схемотехники этих чипсетов - в асинхронном режиме памяти чипсет вводит дополнительные циклы задержки на шинах для синхронизации операций I/O с FSB. Эти чипсеты синхронные с общей шиной памяти, и хотя допускают асинхронных режим работы, но в нём их лучше не использовать. Оптимальных режим для них это синхронный двухканальный режим памяти с балансировкой нагрузки по всем каналам I/O включая видео подсистему. Они конечно могут работать в двухканальном режиме с модулями разного объёма, но при этом скорость работы памяти снижается на 25% - 30%, и как следствие снижается быстродействие системы в целом. Что вполне ожидаемо.

Разумно. Особенно если за ошибки голову оторвут. Дома это одно, а на работе - иное. Сам сто раз всё на стенде перепроверю прежде чем на рабочую машину поставлю вне зависимости от того где она используется.

Читайте также: