Android

Kako izvoditi Linux naredbe u pozadini

Kako podesiti titlove na kodi NOVI TUTORIAL 2018

Kako podesiti titlove na kodi NOVI TUTORIAL 2018

Sadržaj:

Anonim

Tipično kada u terminalu pokrenete naredbu, morate pričekati dok se naredba završi prije nego što unesete neku drugu. To se naziva pokretanje naredbe u prvom ili prethodnom postupku. Kad se proces pokreće u prvom planu, on zauzima vašu ljusku i s njim možete komunicirati pomoću ulaznih uređaja.

Što ako naredbi treba dugo vremena za dovršetak, a u međuvremenu želite pokrenuti ostale naredbe? Na raspolaganju imate nekoliko opcija. Najočitija i najpristupačnija opcija je pokrenuti novu sesiju ljuske i pokrenuti naredbu u njoj. Druga je mogućnost pokrenuti naredbu u pozadini.

Pozadinski proces je proces / naredba koja se pokreće s terminala i izvodi u pozadini, bez interakcije korisnika., govorit ćemo o pozadinskim procesima Linux. Pokazat ćemo vam kako pokrenuti naredbu u pozadini i kako zadržati postupak nakon zatvaranja sesije ljuske.

Izvedite Linux naredbu u pozadini

Da biste naredbu izvršili u pozadini, dodajte simbol ampersand ( & ) na kraju naredbe:

command &

ID zadatka školjke (okružen zagradama) i ID procesa bit će ispisani na terminalu:

25177

Možete u isto vrijeme raditi više procesa u pozadini.

Pozadinski postupak nastavit će s pisanjem poruka na terminal s kojeg ste pozvali naredbu. Za suzbijanje stdout i stderr poruka upotrijebite sljedeću sintaksu:

command > /dev/null 2>&1 &

>/dev/null 2>&1 znači preusmjeravanje stdout u /dev/null i stderr u stdout .

Upotrijebite uslužni program za prikazivanje statusa svih zaustavljenih i pozadinskih poslova u trenutnoj sesiji ljuske:

jobs -l

Izlaz uključuje broj zadatka, ID procesa, stanje posla i naredbu koja je započela posao:

+ 25177 Running ping google.com &

Da biste pozadinu postavili u prvi plan, koristite naredbu fg :

fg

fg %1

Za prekid pozadinskog postupka upotrijebite naredbu kill nakon koje slijedi ID procesa:

kill -9 25177

Pomaknite postupak prednjeg plana u pozadinu

Da biste pokrenuli postupak pokretanja prednjeg plana u pozadini:

  1. Zaustavite proces tako da upišete Ctrl+Z Prestanjeni postupak premjestite u pozadinu unosom bg .

Neka se pozadinski procesi pokrenu nakon izlaska školjke

Ako vaša veza prekine ili se odjavite iz sesije školjke, pozadinski procesi se prekidaju. Nekoliko je načina zadržavanja postupka nakon završetka sesije interaktivne ljuske.

Jedan od načina je uklanjanje zadatka s kontrole posla pomoću ljuske koji je ugrađen:

disown

disown %1

Provjerite je li zadatak uklonjen iz tablice aktivnih poslova pomoću naredbe jobs -l . Za popis svih pokrenutih procesa, uključujući odbijene, koristite naredbu ps aux .

Drugi način da se proces održi nakon izlaska iz školjke je uporaba nohup .

Naredba nohup izvršava drugi program naveden kao njegov argument i zanemaruje sve SIGHUP (hangup) signale. SIGHUP je signal koji se šalje procesu kada je njegov upravljački terminal zatvoren.

Da biste naredbu nohup u pozadini pomoću naredbe nohup , upišite:

nohup command &

Izlaz naredbe preusmjerava se na datoteku nohup.out .

nohup: ignoring input and appending output to 'nohup.out'

Alternative

Postoji veliki broj programa koji vam omogućuju da imate više interaktivnih sesija u isto vrijeme.

Zaslon

Screen ili GNU Screen je terminalni multiplekser program koji vam omogućuje pokretanje zaslona zaslona i otvaranje bilo kojeg broja prozora (virtualnih terminala) unutar te sesije. Procesi koji se izvode na zaslonu nastavit će se prikazivati ​​ako njihov prozor nije vidljiv, čak i ako se prekinete.

Tmux

Tmux je moderna alternativa GNU ekranu. Pomoću Tmuxa možete stvoriti sesiju i otvoriti više prozora unutar te sesije. Tmux sesije su uporne, što znači da se programi koji se izvode u Tmuxu i dalje izvode čak i ako zatvorite terminal.

Zaključak

Da biste naredbu izvršili u pozadini, na kraju naredbe uključite & .

Kad naredbu izvodite u pozadini, ne morate čekati dok se ne završi prije nego što budete mogli izvršiti drugu.

nohup fg bg poslovi oduzeti terminal