Казахме ви какво представлява фоновият процес на Linux и как да го стартирате правилно. В тази статия ще ви разкажем как работи той в този режим.
Стартирането на скрипт в Linux е една задача, трябва да се уверите, че той функционира правилно веднага след като затворите терминала. Терминалът се затваря по следния начин: трябва да щракнете върху кръстчето, което се намира в горния ъгъл на екрана, това води до прекратяване на всички фонови процеси. Съществуват няколко метода за запазването им в случай, че връзката с интерактивния шел се загуби
Първо: премахнете опашката за задачи от задачата, като използвате функцията disown
:
disown
Както и в предишните случаи, ако има няколко едновременно работещи процеса, трябва да посочите номера на този, спрямо който ще се извърши действието:
disown %1
Уверете се, че задачата не е в списъка със задачи. Как да направите това. Използвайте помощната програма jobs -l.
За да видите целия списък на изпълняваните процеси, се използва командата:
ps aux
Следващ метод: запазвате изпълняваните процеси с командата nohup
. Тази команда след изпълнение на свой ред ще изпълни друга команда, като всички сигнали SIGHUP
ще бъдат игнорирани.
Можете да изпълните командата във фонов режим по следния начин:
nohup command &
Както можете да видите на изображението по-горе, изходът на командата ще бъде изпратен в nohup.out
. Най-важното е, че след излизане от системата и затваряне на терминала процесът ще продължи да функционира. Съществуват някои помощни програми, които ви позволяват да изпълнявате две или повече сесии наведнъж. По-специално Screen
и Tmux
ви позволяват да правите това.
Screen
или GNU Screen
е терминален мултиплексор, който ви позволява да стартирате една работна сесия и да отворите произволен брой прозорци (виртуални терминали) в нея. Процесите, работещи в тази програма, ще се изпълняват дори ако техните прозорци са невидими или програмата е спряла да работи.Tmux
е по-модерна алтернатива на GNU Screen
. Въпреки това функциите на Tmux
не се различават съществено - можете да отваряте много прозорци в рамките на една сесия по същия начин. Задачите, изпълнявани в Tmux
, продължават да се изпълняват, ако терминалът е затворен.Решихме този проблем, както можете да видите, всичко е елементарно и просто.