jobs to wbudowane polecenie powłoki (np. bash, zsh), które pokazuje listę zadań uruchomionych z bieżącej sesji terminala i działających w tle lub wstrzymanych. Jeśli wrzuciłeś coś w tło przez & albo zatrzymałeś program kombinacją Ctrl+Z, to właśnie jobs przypomni Ci, co tam jeszcze sobie chodzi (albo śpi) w danej powłoce. Nie myl go z listą procesów całego systemu — jobs widzi tylko zadania swojej powłoki.
Składnia i najważniejsze opcje
Podstawowa składnia: jobs [opcje] [%numer_zadania]
-l— wypisuje dodatkowo PID procesu obok zwykłych informacji o zadaniu.-p— pokazuje wyłącznie PID-y (przydatne do przekazania ich dalej, np. dokill).-r— ogranicza wynik tylko do zadań działających (running).-s— pokazuje tylko zadania wstrzymane (stopped).-n— wyświetla jedynie zadania, których status zmienił się od ostatniego powiadomienia.-x polecenie— uruchamia podane polecenie, podmieniając w nim specyfikacje zadań (np.%1) na odpowiednie PID-y.
Zadania adresujesz przez %n (numer), %% lub %+ (bieżące), %- (poprzednie), a także %nazwa (zadanie zaczynające się od tekstu).
Przykłady użycia
jobs— wyświetla wszystkie zadania bieżącej powłoki z ich numerami i statusem.jobs -l— to samo, ale z PID-ami, więc od razu wiesz, który proces ubić.sleep 300 &a potemjobs— wrzucaszsleepw tło i sprawdzasz, że faktycznie tam wylądował jako zadanie[1].jobs -p— zwraca same PID-y, np.kill $(jobs -p)ubije wszystkie zadania tła naraz.jobs -s— pokazuje tylko to, co wstrzymałeś przezCtrl+Zi o czym zdążyłeś zapomnieć.
Częste błędy i pułapki
Najczęstsza pomyłka to oczekiwanie, że jobs pokaże procesy z innego terminala lub całego systemu — nie pokaże. To narzędzie widzi tylko zadania swojej powłoki, więc po otwarciu nowej karty terminala lista będzie pusta. Druga pułapka: zadania w tle często giną przy zamknięciu powłoki (sygnał SIGHUP) — jeśli proces ma przeżyć wylogowanie, użyj nohup, disown albo lepiej tmux/screen. Pamiętaj też, że jobs to builtin, a nie zewnętrzny program — działa wewnątrz danej powłoki i jego dokładny zestaw opcji potrafi się różnić między bashem a zsh. Numer w nawiasie kwadratowym (np. [2]) to numer zadania, a nie PID — nie podawaj go do kill bez znaku %, bo trafisz w zupełnie inny proces.
Powiązane komendy: bg, fg, kill, disown, nohup, ps, wait.