Изпълнението на Linux команди във фонов режим позволява на потребителя да продължи да изпълнява други задачи, докато командата все още се изпълнява. Има няколко начина за изпълнение на команда във фонов режим; един от простите методи е чрез добавяне на амперсанд (&) в края на командния ред.
След като даден процес е настроен да работи във фонов режим, можем да получим достъп до него с помощта на работни места команда. Тази статия представя всички различни начини за изпълнение на команда във фонов режим.
Списъкът с различни начини за стартиране на фонов процес е както следва:
Следва подробно описание на всички методи за стартиране на фонов процес:
1: Използване на знака амперсанд (&).
В Linux амперсанд (&) е оператор на обвивка, който изпраща команда във фонов режим като отделен процес. Чрез комбиниране на амперсанд (&) към команда, тя ще бъде изпълнена като фонов процес, позволявайки на обвивката да продължи незабавно да обработва други команди.
Синтаксис за фонов процес, използващ знак амперсанд:
$ [ команда ] и
Символът амперсанд винаги се добавя в края на командата с един интервал между тях '&' и последния символ на командата.
Например, създайте процес на заспиване за 40 сек.
$ сън 40
Както виждаме, терминалът изпълнява командата за заспиване и не ни позволява да изпълняваме друга задача.
Сега натиснете „Ctrl + Z“ да спре този процес. След това ще изпълним същата команда за заспиване този път, но използването на оператор амперсанд с нея ще я настрои на заден план.
Сега този процес е на заден план. За да изброите фоновия работещ процес, използвайте:
Сега убийте този фонов процес, като използвате:
Например, за да прекратите текущия процес на заспиване, използвайте:
Сега процесът на заспиване е убит, за да се потвърди списъкът с фоновия процес, използващ.
Ето още един пример за използване & амперсанд знакът е с команда gedit.
Например, ако отворим текстовия редактор gedit директно с помощта на терминала, ще бъдем задължени да използваме обвивката за друга работа или в противен случай първо трябва да спрем текущия процес.
$ gedit
Използването на горната команда ще отвори текстовия редактор, който ще го отвори пред терминала.
Но след използване на „&“ в края на командата gedit, обвивката може да се използва свободно за други процеси:
2: Използване на командата „bg“.
Командата bg е вторият начин за изпълнение на команди във фонов режим. Тази команда позволява на потребителя да продължи да работи в терминала, докато процесът работи във фонов режим, освобождавайки терминала за други задачи. Командата bg се използва за продължителен фонов процес, който се изпълнява дори ако потребителят излезе.
Подобно на знака амперсанд, не е нужно да се притесняваме да го добавяме към командата всеки път, когато просто изпращаме bg текст към терминала. Той ще започне да изпълнява процеса във фонов режим и ще освободи терминала за бъдеща употреба.
Например, нека използваме предишния пример и изпратим командата за заспиване, използвайки:
$ сън 40
Сега процесът се изпълнява и терминалът не е достъпен за използване. За да използваме командата bg и да изпратим този процес във фонов режим, първо трябва да спрем текущия изпълняващ се процес, като натиснем „Ctrl+ Z“ и изпълнение на тази команда:
След изпращане на командата bg процесът на заспиване започна да продължава във фонов режим. Можем да видим амперсанд „&“ в края, което показва, че текущият процес работи във фонов режим.
За да проверите фоновия процес, стартирайте командата jobs:
За да проверите командата, работеща във фонов режим, използвайте:
За да прекратите текущия процес, използвайте неговия идентификатор на задание с команда kill. За да проверите ID на задания, изпълнете:
След като знаете процеса на унищожаване на ID на заданията, като използвате:
Например, за да спрете текущия процес на заспиване, използвайте:
За да потвърдите дали процесът е убит или не, изпълнете отново командата jobs:
Виждаме, че процесът на заспиване вече не работи във фонов режим:
3: Използване на командата nohup
Командата nohup е трета в нашия списък с работещи фонови процеси в Linux. Командата означава „без затваряне“ и се използва за предотвратяване на прекратяване на процеса, докато терминалната сесия приключи. Когато даден процес се изпълнява с помощта на nohup, той продължава да работи дори ако потребителят излезе, а изходът от процеса се пренасочва към файл с име „nohup.out“ .
Командата nohup за непрекъснат пинг на google във фонов режим е и изходът се пренасочва към текстов файл GooglePing.txt:
$ nohup пинг Google com > GooglePing.txt и
След като напишем тази команда, можем да видим, че терминалът е свободен и фонов процес за непрекъснато пингване на google работи във фонов режим.
За достъп до лог файла можем да използваме следната команда:
Регистрационният файл може да бъде достъпен и чрез GUI от началния екран.
4: Използване на командата disown
Командата disown премахва процес от обвивката и го изпълнява във фонов режим. Когато даден процес бъде отхвърлен, той вече не е свързан с терминала и продължава да работи дори след като потребителят излезе или затвори терминала.
По-рано използвахме командата с амперсанд „&“, която изпраща процеса във фонов режим след неговото изпълнение, но когато затворим обвивката, процесът се прекратява. За да се отървете от тази команда за отказ е там.
Командата disown не може да работи независимо, но поне един процес трябва да работи във фонов режим.
Изпълнете командата по-долу с a и знак амперсанд, който ще изпрати вашата команда на заден план.
$ пинг Google com > GooglePing.txt и
След като файлът е създаден, можем да го изведем с помощта на командата jobs.
Сега нашият процес работи във фонов режим, за да го отделим от използването на терминала:
Изпълнете отново командата за задания, за да потвърдите, че процесът е отделен от терминала:
Тъй като нашият процес в момента се изпълнява, но вече не се показва в терминала:
За да потвърдим нашия процес, можем да използваме командата cat за достъп до този ping файл:
Успешно отделихме този процес от терминала, но той все още работи на заден план.
5: Използване на помощната програма tmux
Tmux е вид помощна програма за терминален мултиплексор. С помощта на tmux можем да създадем множество терминални сесии в рамките на една обвивка. Предоставя възможност за стартиране на процеси във фонов режим.
За да стартирате фонов процес в Tmux, можете да създадете нова сесия и след това да се отделите от нея, като използвате клавишната комбинация Ctrl-b, последвана от d.
За да инсталирате помощната програма tmux на Ubuntu и Linux mint, използвайте:
$ sudo ап Инсталирай tmux
За да инсталирате на Fedora, изпълнете:
За да инсталирате на Arch Linux, стартирайте:
Сега изпълнете командата tmux, за да отворите нов терминал:
За да създадете нова tmux сесия, използвайте:
За да изброите всички tmux сесии, използвайте:
За убиване на tmux сесия използвайте команда като:
Например да убиеш '0' използване на tmux сесия:
Тук изброихме текущата активна tmux сесия и я убихме с горната команда:
-
- За да се откачите от tmux сесията, натиснете „Ctrl+B+D“ .
- За да получите списък с всички команди, натиснете „Ctrl+B+?“ .
- За да превключвате между tmux прозорци, натиснете „Ctrl+B+O“ .
За да разделите tmux терминала вертикално, натиснете „Ctrl+B“ и тип % .
За да се върнете към основния терминал от tmux използвайте:
Заключение
Изпълнението на фонови приложения в Linux е мощна функция, която позволява на потребителите да продължат да изпълняват дългосрочните си задачи дори след като излязат от терминала или затворят прозореца. Обикновено ан амперсанд & знак или бг командата се използва за изпращане на процес във фонов режим. Можем обаче да използваме и nohup или отричам се команда за отделяне на процес от терминала. Най-накрая можем да използваме помощна програма tmux за създаване на множество терминали и стартиране на фонови процеси, без да се смущава терминалът.