Стартиране на баш команди в основата по правилния начин [Linux]
Всички са били там: искате да стартирате терминална програма и да я пуснете да работи. Проблемът е, че тази програма е стара или не включва функция, която й позволява да работи като демон във фонов режим. За щастие има няколко начина да принудите програмите да работят във фонов режим.
Баш може да направи всичко това самостоятелно и няма да е необходимо да инсталирате допълнителни програми. Тази статия ще излезе по няколко начина, по които можете да натискате терминални програми във фонов режим и да ги държите там. Всеки от изброените методи е подходящ за своя случай на специална употреба.
Завършете командата с &
Ако искате да натиснете команда във фонов режим, използвайки &
в края е лесен начин да направите това. Но идва с улов. Използването &
не прекъсва командата от вас; то просто я избутва във фонов режим, за да можете да продължите да използвате терминал.
команда &
Когато сесията на терминала се затвори, командата завършва. Използването на &
е добро, ако трябва малко да избутате нещо, но не очаквайте това да продължи завинаги.
& След команда, след това го отхвърли
Изпълнявайки команда само с &
го избутва назад и продължава да работи, докато терминалният прозорец е отворен. Ако обаче искате да запазите тази команда постоянна, дори и при завършването на терминала, можете да използвате командата за disown
.
За да използвате този метод, първо започнете да добавяте &
.
команда &
Както споменахме по-горе, използвайки &
натиска тази команда във фонов режим, но не я отделя от потребителя. Можете да потвърдите това, като въведете jobs
в терминала. Тя ще покаже командата, изпълняваща се във фонов режим.
Просто напишете disown
в черупката, и то ще направи точно това (и можете да потвърдите отново това с командата jobs
).
& След команда с / dev / null
Добавянето &
след команда ще натисне команда във фонов режим, но в резултат командата на фона ще продължи да печата съобщения в терминала, докато го използвате. Ако искате да предотвратите това, помислете за пренасочване на командата към /dev/null
.
команда &> / dev / null &
Това не възпрепятства затварянето на командата, когато терминалът се затваря. Въпреки това, както споменахме по-горе, е възможно да се използва disown
да се отрече изпълняваната команда от потребителя.
Nohup, с & a / dev / null
За разлика от предишните команди, използването на nohup
ви позволява да изпълнявате команда във фонов режим и да я поддържате в движение. Как? Nohup заобикаля сигнала HUP (сигнал се затваря), което дава възможност за стартиране на команди във фонов режим дори когато терминалът е изключен. Комбинирайте тази команда с пренасочване към /dev/null
(за да предотвратите създаването на nohup.out файл) и всичко минава във фона с една команда.
nohup команда &> / dev / null &
заключение
Повечето терминални програми на Linux днес имат вградени функции, които им позволяват да работят във фонов режим с малко усилия. Заедно с това модерните init системи (като systemd) могат да позволят на потребителите да стартират програми като услуги при зареждане или по всяко време.
Все пак, някои програми на Линукс нямат възможност да работят като демон или да се интегрират с модерните init системи. Това е истински неудобство, но е разбираемо, тъй като не всички разработчици имат умения или време да добавят нови функции.
За щастие команди като "не" или " disown
все още са реалност и все още могат да запълнят празнината при преместването на такива програми на фона. Те не са перфектни или фантастични, но те вършат работата, когато е необходимо.
Как премествате изпълняващи терминални програми във фонов режим? Кажете ни по-долу!
Image Credit: Един терминал - четири екрана