Jeżeli potrzebujesz wpłynąć na działanie procesu aktualnie działającego w tle, to możesz go przywrócić na pierwszy plan. Jeżeli w danej chwili w tle uruchomiony jest tylko jeden proces, to przywróci go wpisanie:
% fg |
Przywrócony w ten sposób program, który nie skończył jeszcze swojego działania, przejmie kontrolę nad terminalem - nie zostaniesz przywrócony do linii poleceń. Czasem jednak program zakończy swe działanie będąc jeszcze w tle; w takim wypadku otrzymasz informację podobną do tej poniżej:
[1]+ Done /bin/ls $LS_OPTIONS |
Jest to informacja o tym, że proces uruchomiony w tle (w tym wypadku: ls - nieszczególnie interesujące) zakończył już swe działanie.
Możliwe jest też uruchomienie w tle kilku programów równolegle. W takiej sytuacji trzeba wiedzieć, który proces chcemy przywrócić na pierwszy plan. Zwykłe wpisanie fg przywróci proces przeniesiony w tło jako ostatni. A co w sytuacji, gdy mamy już całkiem sporą listę programów działających w tle? Na taką sytuację bash zawiera polecenie wypisujące wszystkie takie procesy. Nazywa się ono jobs i daje wynik tego typu:
% jobs [1] Stopped vim [2]- Stopped amp [3]+ Stopped man ps |
Wypisane zostają wszystkie procesy będące uruchomione w tle. Jak już pewnie zauważyłeś - wszystkie są zatrzymane (stopped). Oznacza to, że wszystkie zostały uśpione. Numer w pierwszej kolumnie oznacza identyfikator (w skrócie: ID) procesu będącego w tle. ID ze znakiem plus (man ps) oznacza, że proces będzie przywrócony, jeżeli wpiszesz tylko fg.
Jeżeli chcesz przywrócić vim, wpisz:
% fg 1 |
i vim zostanie przywrócony na konsolę. Przenoszenie programów w tło jest szczególnie użyteczne, jeżeli posiadasz tylko jeden terminal w połączeniu zdalnym. Możesz wtedy uruchomić w tle równocześnie wiele programów, wedle uznania przełączając kolejne z nich na pierwszy plan.