Как да преглеждате и стартирате фонови процеси на Linux

Съдържание

Изпълнението на процеси е жизненоважно във всяка използвана операционна система, тъй като те гарантират, че както приложенията, така и другите елементи на операционната система могат да действат по правилния начин както в съвместимост, така и при изпълнение на техните функции.

Всяка операционна система може да обработва процеси по различен начин, но в случая с Linux, като правило, процесите са свързани с терминал. Това означава, че той трябва да бъде отворен, за да може процесът да работи нормално, но това действие може да доведе до ситуации като:

  • Отвореният терминал може да съдържа много изходни данни или съобщения за грешка / диагностика, което затруднява не само четенето на данните, но и управлението им.
  • Ако трябва да затворим терминала, процесът заедно с неговите вторични процеси ще приключи директно, засягайки задачата, която трябва да бъде изпълнена.

При този тип сценарии е от съществено значение да се изпълняват необходимите процеси във фонов режим, фонов процес е процесът, който ще бъде изпълнен по скрит начин и за неговата работа не се изисква намесата на потребителя, по този начин, въпреки че терминалът е затворен main, процесът ще продължи да изпълнява задачата си. Фоновите процеси се прилагат към онези задачи, които могат да отнемат време, като скриптове, изтегляне на файлове и други, при които не можем да чакаме действието да завърши, без да правим нищо.

В Linux можем да изпълняваме процеси на преден план или във фонов режим. Програма на преден план, когато се изпълнява в терминала, няма да можем да изпълним никаква друга команда, докато процесът не приключи, но това може да стане от фона или фона.

Програма, която се изпълнява във фонов режим, веднъж стартирана, не използва терминала от момента, в който е стартиран до края. За да изпълним софтуер или команда във фонов режим от терминала, добавяме Ако добавим амперсанд (&) в края на командата или скрипта, който искаме да изпълним, той ще бъде изпълнен във фонов режим от операционната система. Пример:

 нано & 
Solvetic ще обясни как можем да виждаме и изпълняваме фонови процеси в Linux.

1. Вижте списъка с процеси с команда ps в Linux


С командата ps команда можем да знаем състоянието на процес. Ps е състояние на процес или състояние на процес. Командата ps не изброява процесите и посочва някои колони PID, TTY, TIME и CMD.

PID (номер на процеса)Всеки процес получава уникален идентификационен номер, който се присвоява от ядрото на Linux.

TTYе терминалът, свързан с процеса, той може да бъде и друго входно устройство.

ВРЕМЕВремето, през което процесът е изпълнен.

CMDТова е името на командата, която се изпълнява, bash е процесът на черупката.

Например, с командата ps -A тя ще ни покаже всички изпълнявани процеси.

2. Стартирайте фонов процес или команда в Linux, като използвате bg в Linux


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

Етап 1
Основният синтаксис на тази команда е следният:

 bg [работа] 
Стъпка 2
В случай, че процесът вече се изпълнява, ние трябва да натиснем следните клавиши, за да го спрем и след това да въведем командата bg, за да продължим изпълнението му във фонов режим като работа. За този пример ще използваме следните редове:

Ctrl + Z

 tar -czf home.tar.gz. (стартиращ процес, който ще бъде спрян с Ctrl + Z) bg (изпълнение на командата във фонов режим) задачи (визуализация на изпълнените задачи)

Стъпка 3
Можем да видим, че процесът все още работи, но вече на заден план. Също така ще бъде възможно да стартирате процес директно във фонов режим, като въведете амперсанда в края му:

 tar -czf home.tar.gz. & Работни места 

3. Запазете работещите процеси на Linux след излизане от терминала в Linux


Това е съществен момент, тъй като, както споменахме, в нормален режим, когато терминалът е затворен, всички активни процеси ще приключат, така че е възможно да им се позволи да продължат да работят дори когато терминалът е затворен.

За тази цел можем да използваме командата disown, която ще се използва след стартиране на процес и е поставена на заден план, командата disown е обвивка, чиято мисия е да елиминира заданията от активния списък на активната Shell.

Етап 1
С изпълнението на disown, когато затворим терминала, заданието няма да се срине или да изпрати SIGHUP към която и да е детска работа. Основният му синтаксис е:

 отхвърлен jobID 
Стъпка 2
За неговата работа ще изпълним следното:
 sudo rsync Templates / * / var / www / html / files / & (команда за изпълнение) задания (активни задачи) отказ от -h% 1 (за да не се затваря процеса или команда) задания (показване на работни места)

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

Стъпка 3
Опциите за използване с отказ са:

-да сеПремахва всички задания, ако jobID не е предоставен.

-чМаркира всеки идентификатор на задача, така че SIGHUP не се изпраща към заданието, ако черупката получи SIGHUP.

-rИзчиства само изпълняваните задачи.

4. Запазете работещите процеси на Linux след излизане от терминала в Linux


Основната задача на командата nohup е да предотврати автоматичното анулиране на командата при излизане или излизане от черупката. Когато използвате командата nohup (без затваряне), сигналът за затваряне (HUP), който се изпраща до процес, за да го информира, че потребителят е излязъл, се прихваща от nohup, за да позволи на процеса да продължи да работи за секунди.

Етап 1
Синтаксисът на използване е следният:

 команда nohup [команда-аргумент …] 
Стъпка 2
За този случай ще използваме следния пример. Ако стандартният вход е терминал, nohup го пренасочва от / dev / null. Следователно терминалното въвеждане не е възможно при изпълнение на команда с nohup. В случай, че стандартният изход е терминал, изходът на командата се добавя към файла nohup.out или $ HOME / nohup.out. Ако стандартната грешка е терминал, тя се пренасочва към стандартен изход. За да запишем изхода във файл, трябва да използваме „nohup команда> файл“.
 nohup tar -czf iso.tar.gz Шаблони / * & работни места

5. Прекратете връзката с процес на Linux в терминала

Етап 1
Ако целта е напълно да отделим процес от терминала, трябва да използваме следния синтаксис:

 app / dev / null & 
Стъпка 2
Например:
 firefox / dev / null & 

6. Използвайте фонови процеси с Screen на Linux


В случай на използване на команда във фонов режим, с опциите nohup и &), тя ще бъде изпълнена дори след затваряне на сесията, проблемът е, че когато се свържем отново със същата сесия отново, няма да видим активната работа в фон, за да коригирате това, има командата на екрана.

screen е мениджър на прозорец на цял екран, който управлява физически терминал между няколко процеса, обикновено черупките са интерактивни. Всеки виртуален терминал предлага функциите на терминал DEC VT100 и в допълнение няколко контролни функции по стандартите ISO 6429 (ECMA 48, ANSI X3.64) и ISO 2022, които го правят изключително динамичен.

Когато стартираме екран, се създава един прозорец с обвивка или посочената команда и след това се заобикаля, за да може да използва програмата нормално.

Етап 1
За да инсталираме екран в Linux, ще изпълним следното. Там въвеждаме буквата S, за да потвърдим изтеглянето и инсталирането.

 sudo apt екран за инсталиране

Стъпка 2
След като инсталираме, изпълняваме командата "screen" и ще видим следното:

Стъпка 3
Там натискаме клавиша Enter, за да бъдем пренасочени към новия прозорец, където изпълняваме процеса или командата, която да използваме във фонов режим:

 sudo tar czf temp.tar.gz / tmp & 

Стъпка 4
Ще можем да визуализираме активните прозорци с помощта. За да излезем от екранната сесия, можем да използваме клавишите

Ctrl + a + d

Ctrl + alt + d

 screen -ls 

7. Спрете или убийте спрян или фонов процес в Linux


За това действие, което се състои в прекратяване на изпълнението на процеса във фонов режим, можем да използваме командата "kill" и вместо PID можем да посочим идентификатора на заданието, например:
 работни места (избройте текущите работни места) kill% 2 (убийте или прекратете процеса идентифицира като 2)

8. Спрете процес или преместете процеса на заден план


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

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

Етап 1
За прекъсване на процес се използва следната комбинация, при натискане на тази комбинация процесът умира и всички ресурси се освобождават.

Ctrl + C

Стъпка 2
Нека се опитаме да изпратим повтаряща се команда на заден план. Командата yes се използва за тестване на скрипт, който изисква много потвърждения. Това, което прави, е да повтаря "и" с каквото и да е написано пред него безкрайно, докато скриптът бъде спрян или потребителят го спре:

  • Ако напишем „да“ в терминала и ще видим безкраен списък с „и“.
  • Ако напишем да здравей в терминала и ще видим безкраен списък с здравей

Стъпка 3
За да изтриете файл, без да натискате клавиш, когато той поиска потвърждение, което можем да използваме

 да | rm -i * .txt 
Стъпка 4
За да изпратим процес на заден план го наричаме от командния ред, последван от & създаване на безкрайни нулеви устройства
 да> / dev / null & 
Стъпка 5
Това ще ни покаже номера на задачата и pid [1] 4106. Ако сега използваме командата jobs ще видим
 [1] + Изпълнение на да> / dev / null &
Стъпка 6
за да го изведем на преден план, пишем fg 1 и за да убием процеса kill 4106, който е pid.
 Fg 1 Убий 4106
С някоя от посочените опции ще бъде възможно да се управляват фоновите процеси в Linux по много по -централен начин и по този начин да се позволи изпълнението на необходимите задачи дори когато сесията е затворена.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave