что такое фоновый процесс?

Ubuntu настроила locale-gen утилита. Назовите его с названиями локалей, которые Вы хотите генерировать.

locale-gen cs_CZ.ISO8859-2

0
14.07.2013, 01:29
2 ответа

Приоритетный процесс не требует взаимодействия с пользователем. Можно сделать

cp very_large_file destination

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

Двумя путями можно превратить приоритетный процесс в фон один:

1-Добавлений амперсанда (и) в конце Вашей командной строки:

cp very_large_file destination &

2-Остановок приоритетного процесса, затем приносящего его в фон:

cp very_large_file destination

CTRL+Z

bg

Теперь apache2 определенно рассчитал бы как фоновый процесс: да можно взаимодействовать с ним с помощью запросов HTTP, но это просто слушает на порте 80 (по умолчанию) ожидания такого запроса: это не блокирует систему, пока пользователь не выполняет запрос.

И почему Вы не соглашаетесь при большинстве процессов, которые рассматривают фоновыми процессами? Это действительно нормально в "многозадачной операционной системе".

2
28.01.2020, 02:15
  • 1
    Из любопытства, если у меня есть программа, которая действительно блокируется, но оно работает на сессии экрана GNU или tmux и затем я оставляю это screen/tmux сессией и управлением возвратом к терминалу (но конечно они игнорируют ПОНУКАТЬ (зависание) сигнал, таким образом, они все еще работают), их считали бы фоновым процессом? Я предполагаю, что Вы утверждали бы, что они - приоритетные процессы с тех пор в рамках их сессии, они блокируются, даже при том, что они не блокируются в основном терминале. –  JohnMerlino 14.07.2013, 02:09
  • 2
    @JohnMerlino я сказал бы это screen/tmux приоритетный процесс в этом случае и когда Вы "возвращаете управление терминалу", Вы отправляете его в фон. –  Joseph R. 14.07.2013, 02:14

Существует два общих определения “фонового процесса”, один в общих чертах, и один точный и характерное для Unix.

В широком смысле можно назвать “фоновый процесс” любым процессом, который не взаимодействует с пользователем, сидящим в консоли. В этом смысле Apache является фоновым процессом.

В терминологии Unix “фоновый процесс” имеет точное определение. Фоновый процесс является процессом, который запускается с терминала, но в настоящее время запрещается взаимодействовать с терминалом. (Я упрощаю, не рассматривая группы процесса.) Вы обычно получаете фоновый процесс путем запуска фонового задания в оболочке:

$ myprogram &
[1] 12345
$ 

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

$ myprogram
^Z
[1]+ Stopped    myprogram
$ bg
[1]+ myprogram &
$ 

Если Вы запускаете программу без &, это находится на переднем плане. Может только быть единственный процесс на переднем плане в данном терминале за один раз. (Или в более общем плане, единственная группа процесса, если приоритетный процесс запускает некоторые подпроцессы.) Оболочка builtins bg и fg изменение, какой процесс находится на переднем плане. Когда процесс в фоновом режиме, если он пытается читать или записать в терминал, он останавливается сигналом SIGTTOUT или SIGTTIN.

Я нахожу Вашу интуицию, что Apache не является фоновым процессом, потому что это взаимодействует с пользователем по странному HTTP. Apache не взаимодействует с пользователем: это взаимодействует с удаленным веб-браузером (который взаимодействует с пользователем), или автоматизированный клиент (который не взаимодействует с пользователем). Если Вы рассматриваете какой-либо процесс, это взаимодействует с интерактивным как интерактивный процесс, то любой процесс является интерактивным, который делает его бесполезным понятием.

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

4
28.01.2020, 02:15

Теги

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