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

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

Демоны - Демон ... Они процессы, которые выполняются в фоновом режиме и не являются интерактивными. У них нет управляющего терминала ...

Как они используются? Также есть ли какие-либо связанные команды для отображения процессов, работающих в фоновом режиме?

3
задан 13 April 2017 в 15:24

4 ответа

Простым определением является процесс, который не подключен к активному терминалу или дисплею... Но существует несколько способов достигнуть этого:

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

  • разъединенный процесс А состоит в том, где Вы изменяете родителя процесса к PID=0, /sbin/init. Это означает, что даже при закрытии терминала или X сессий процесс останется (как долго, поскольку это не зависит от других вещей — как X сессий). существует много способов выполнить это . Если иначе не перенаправлено, ничего не происходит с выводом разъединенных процессов после того, как их терминал перестанет работать.

    важно отметить, что разъединил, не обязательно означает фон , но если текущий терминал перестает работать, процесс автоматически рассматривают "в фоновом режиме", потому что это не имеет никакого способа управлять его IO.

  • Тогда существуют виртуальные оболочки, которые сами могут работать в фоновом режиме и "содержать" Ваши активные процессы, открытые для Вас. screen, вероятно, лучший пример этого. Это позволяет Вам разъединяться и снова соединяться с различными терминальными сеансами, который удобен, если необходимо сохранить терминальный рабочий процесс на сервере (или выполнить что-то с выводом неограниченно долго, как irssi, клиент IRC).

  • Наконец, существует определение оболочки. Много оболочек (интерфейсы командной строки как Bash) позволяют Вам фону процесс. Это просто означает файлы IO, STDOUT, STDIN и STDERR разъединяются от текущего терминала. Процесс продолжает работать в его собственном потоке, и Вам дают другую подсказку. Процесс не автоматически разъединен поэтому, если сессия Bash закрывается, все ее фоновые задачи - также. Вот простой пример с Bash.

0
ответ дан 13 April 2017 в 15:24

Фон означает, что процесс работает на Вашей системе, которая не видима на рабочем столе (т.е. это не должно иметь приложения на открытом рабочем столе).

команду для просмотра ВСЕХ процессов называют 'PS'. Пример с ps -ef:

 ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 apr10 ?        00:00:02 /sbin/init
root         2     0  0 apr10 ?        00:00:00 [kthreadd]
root         3     2  0 apr10 ?        00:00:07 [ksoftirqd/0]
root         5     2  0 apr10 ?        00:00:00 [kworker/0:0H]
root         7     2  0 apr10 ?        00:00:33 [rcu_sched]
root         8     2  0 apr10 ?        00:00:00 [rcu_bh]
root         9     2  0 apr10 ?        00:00:01 [migration/0]
root        10     2  0 apr10 ?        00:00:02 [watchdog/0]
root        11     2  0 apr10 ?        00:00:02 [watchdog/1]
root        12     2  0 apr10 ?        00:00:01 [migration/1]
root        13     2  0 apr10 ?        00:00:07 [ksoftirqd/1]
root        15     2  0 apr10 ?        00:00:00 [kworker/1:0H]

Это намного более длинно. Если Вы хотите найти хром, например, можно сделать ps -ef | grep chromium как так:

ps -ef |grep chrom
xxxxxx    2874  1207  0 apr10 ?        00:54:28 /usr/lib/chromium-browser/chromium-browser --enable-pinch
xxxxxx    2880  2874  0 apr10 ?        00:00:04 /usr/lib/chromium-browser/chromium-browser --enable-pinch
xxxxxx    2881  2874  0 apr10 ?        00:00:00 /usr/lib/chromium-browser/chrome-sandbox /usr/lib/chromium-browser/chromium-browser --type=zygote
xxxxxx    2882  2881  0 apr10 ?        00:00:00 chromium-browser --type=zygote                          
xxxxxx    2888  2882  0 apr10 ?        00:00:00 chromium-browser --type=zygote                          

Популярные программы для просмотра процессов top и htop.

можно использовать этот список для уничтожения процесса из командной строки.

Системный монитор может использоваться для просмотра фоновых задач:

enter image description here

0
ответ дан 13 April 2017 в 15:24

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

От командная строка, фоновый процесс может быть запущен с помощью и оператор. bg утилита может возобновить приостановленное задание, выполнив его в фоновом режиме. Используя fg утилита свяжет фоновый процесс со своим родительским терминалом, принося его в передний план. jobs утилита перечислит все процессы, связанные с текущим терминалом, и может использоваться для обеспечения фоновых процессов в передний план.

  • Пример:

    Для отправки рабочего процесса (работающий в терминале) к фону просто поразите Ctrl+z и звоните bg команда:

    sylvain@sylvain-ThinkPad-T430s:~$ sleep 50
    ^Z
    [1]+  Stopped                 sleep 50
    sylvain@sylvain-ThinkPad-T430s:~$ bg
    [1]+ sleep 50 &
    

    Теперь можно ввести другие команды в терминале в то время как sleep команда работает.

Источник

2
ответ дан 13 April 2017 в 15:24

Фоновый процесс является просто процессом, которые работают независимо на фоне, и не влияет ни к одному приоритетному процессу.

можно относиться: http://cs.brown.edu/courses/bridge/1998/res/UnixGuide.html для получения дополнительной информации.

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

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