linux - uruchamianie procesu w tle

linux — uruchamianie procesu w tle

Terminal umożli­wia uruchami­an­ie kilku pro­gramów naraz, przełączanie się pomiędzy nimi pole­ga na prze­suwa­niu pro­gra­mu z „pier­wszego planu” w „tło”. Tylko pier­ws­zo­planowy pro­ces może odbier­ać dane od użytkownika.

Aby uru­chomić pro­gram w tle wystar­czy na końcu polece­nia dostaw­ić znak & (ang. Ampersand).

$ skrypt.sh &
[1] 637
$

Uruchamiając skrypt.sh w tle, umożli­wiamy jego pracę i mamy jed­nocześnie dostęp do powło­ki.  Powłoka w naw­iasie kwadra­towym podała mi numer zada­nia (ang. job) — 1, oraz numer PID — 637.

Aby wyświ­etlić listę uru­chomionych w tle zadań, należy użyć polece­nia jobs, posi­a­da ono dodatkowy para­metr ‑l poda­ją­cy dodatkowo numer PID danego zadania.

Aby zatrzy­mać pro­ces pier­ws­zo­planowy należy użyć kom­bi­nacji Ctrl + z (w tym przy­pad­ku do pro­ce­su zostanie wysłany syg­nał SIGSTP), aby zatrzy­mać pro­ces moż­na posłużyć się kom­bi­nacją Ctrl + c, przesłany zostanie do pro­ce­su syg­nał SIGINT .

$ jobs ‑l
[1]- 637 Running skrypt.sh &

Aby dany pro­ces uczynić pier­ws­zo­planowym, należy posłużyć się polece­niem fg %numer zada­nia, lub fg %?nazwa polece­nia lub frag­ment nazwy.

$ fg %1
$ fg %skrypt
W pier­wszym przy­pad­ku przeniosłem zadanie na pier­wszy plan odwołu­jąc się do jego numeru zada­nia, w drugim odwołu­jąc się po frag­men­cie nazwy.

Polecenie bg %numer zada­nia, uru­cho­mi zatrzy­mane w tle zadanie, w prze­ci­wieńst­wie do polece­nia fg, nie prze­niesie zada­nia na pier­wszy plan.

$ skrypt.sh
Ctrl + z
[3]+ Stopped skrypt.sh
$ bg %3
[3]+ skrypt.sh &

Jeżeli na ekranie pojaw­ią się dane wysyłane przez pro­gram w tle na stan­dar­d­owe wyjś­cie, wyjś­cie błędów, aby tego uniknąć moż­na przekierować stru­mień do śmiet­ni­ka np. skrypt.sh > /dev/null

Tags: , ,

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Zadzwoń teraz!