Я всегда слышал о фоновых (но не настольных) процессах. Но я не понимаю, что они на самом деле. В качестве примера, пожалуйста, посмотрите ответ этой ссылки , в чем техническая разница между демоном, сервисом и процессом? Я цитирую здесь:
Демоны - Демон ... Они процессы, которые выполняются в фоновом режиме и не являются интерактивными. У них нет управляющего терминала ...
Как они используются? Также есть ли какие-либо связанные команды для отображения процессов, работающих в фоновом режиме?
Простым определением является процесс, который не подключен к активному терминалу или дисплею... Но существует несколько способов достигнуть этого:
Большая часть того, что мы рассматриваем, фоновые процессы являются системными службами. Они часто будут запущенным высоким уровнем init демон (Выскочка, Systemd, и т.д.) и обычно оставаться ребенком того демона. Этому возвратит его вывод init демон для входа целей.
разъединенный процесс А состоит в том, где Вы изменяете родителя процесса к PID=0, /sbin/init
. Это означает, что даже при закрытии терминала или X сессий процесс останется (как долго, поскольку это не зависит от других вещей — как X сессий). существует много способов выполнить это . Если иначе не перенаправлено, ничего не происходит с выводом разъединенных процессов после того, как их терминал перестанет работать.
важно отметить, что разъединил, не обязательно означает фон , но если текущий терминал перестает работать, процесс автоматически рассматривают "в фоновом режиме", потому что это не имеет никакого способа управлять его IO.
Тогда существуют виртуальные оболочки, которые сами могут работать в фоновом режиме и "содержать" Ваши активные процессы, открытые для Вас. screen
, вероятно, лучший пример этого. Это позволяет Вам разъединяться и снова соединяться с различными терминальными сеансами, который удобен, если необходимо сохранить терминальный рабочий процесс на сервере (или выполнить что-то с выводом неограниченно долго, как irssi
, клиент IRC).
Наконец, существует определение оболочки. Много оболочек (интерфейсы командной строки как Bash) позволяют Вам фону процесс. Это просто означает файлы IO, STDOUT, STDIN и STDERR разъединяются от текущего терминала. Процесс продолжает работать в его собственном потоке, и Вам дают другую подсказку. Процесс не автоматически разъединен поэтому, если сессия Bash закрывается, все ее фоновые задачи - также. Вот простой пример с Bash.
Фон означает, что процесс работает на Вашей системе, которая не видима на рабочем столе (т.е. это не должно иметь приложения на открытом рабочем столе).
команду для просмотра ВСЕХ процессов называют '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
.
можно использовать этот список для уничтожения процесса из командной строки.
Системный монитор может использоваться для просмотра фоновых задач:
Фоновый процесс является компьютерным процессом, который работает "негласно" (т.е. в фоновом режиме) и без вмешательства пользователя. Типичные задачи для этих процессов включают вход, системный мониторинг, планирование и пользовательское уведомление.
От командная строка, фоновый процесс может быть запущен с помощью и оператор. 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
команда работает.
Фоновый процесс является просто процессом, которые работают независимо на фоне, и не влияет ни к одному приоритетному процессу.
можно относиться: http://cs.brown.edu/courses/bridge/1998/res/UnixGuide.html для получения дополнительной информации.