Казахме ви какво представлява фоновият процес на 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, продължават да се изпълняват, ако терминалът е затворен.Решихме този проблем, както можете да видите, всичко е елементарно и просто.