Zarządzanie zadaniami (bg, fg, jobs)
Opanuje Pan/Pani zarządzanie procesami działającymi w tle i na pierwszym planie, a także wstrzymywanie, wznawianie i wyświetlanie zadań w sesji powłoki.
Zarządzanie zadaniami (bg, fg, jobs) to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Czym jest sterowanie zadaniami?
Witaj w sekcji poświęconej sterowaniu zadaniami! Ta zaawansowana funkcja powłoki Linux pozwala zarządzać uruchomionymi programami bez zamykania terminala ani otwierania nowych okien.
Można traktować ją jak wielozadaniowość w wierszu poleceń. Możesz wstrzymać zadanie, przenieść je do tła lub przywrócić je na pierwszy plan.
Pierwszy plan a tło
Po uruchomieniu polecenia zazwyczaj działa ono na pierwszym planie. Oznacza to, że przejmuje kontrolę nad terminalem i nie można wpisywać nowych poleceń, dopóki jego działanie się nie zakończy.
Proces działający w tle działa natomiast niezależnie. Zwalnia terminal, dzięki czemu można wykonywać inne zadania, podczas gdy proces nadal działa.
Wstrzymywanie procesu (Ctrl+Z)
Aby wstrzymać aktualnie działający proces na pierwszym planie, należy użyć skrótu klawiaturowego Ctrl+Z. Wysyła on sygnał SIGTSTP, zawieszając proces.
Proces nie zostaje zakończony — staje się „zatrzymanym” zadaniem i czeka, aż zdecyduje Pan/Pani, co ma zrobić dalej.
Wyświetlanie zadań (jobs)
Po wstrzymaniu procesu (lub przeniesieniu go do tła) można wyświetlić listę wszystkich aktywnych zadań w bieżącej sesji powłoki za pomocą polecenia jobs.
Każde zadanie otrzymuje unikalny numer (na przykład [1], [2] itd.) oraz status (np. Stopped, Running).
sleep 50 &
sleep 60 &
jobsPrzenoszenie na pierwszy plan (fg)
Jeśli ma Pan/Pani zatrzymane lub działające w tle zadanie, można przenieść je z powrotem na pierwszy plan za pomocą polecenia fg, podając jego numer (np. %1).
Dzięki temu zadanie ponownie stanie się aktywnym procesem w terminalu.
sleep 100 &
jobs
# Now, let's bring it to foreground
fg %1Przenoszenie do tła (bg)
Aby wznowić zatrzymane zadanie i przenieść je do tła, należy użyć polecenia bg wraz z numerem zadania.
Proces będzie działać dalej bez blokowania terminala, a znak zachęty pojawi się ponownie natychmiast.
sleep 200
# Press Ctrl+Z to stop it
# Then type:
bg %1
jobsUruchamianie w tle ( & )
Nie zawsze trzeba uruchamiać proces na pierwszym planie, a następnie go wstrzymywać. Polecenie można uruchomić bezpośrednio w tle, dopisując ampersand (&) na końcu polecenia.
To świetne rozwiązanie w przypadku długotrwałych zadań, z którymi nie trzeba wchodzić w interakcję.
echo "Starting long task..." &
sleep 300 &
jobsNumery zadań i identyfikatory PID
Po użyciu jobs wyświetlane są numery zadań, takie jak [1] czy [2]. Są one przypisane do bieżącej sesji powłoki.
Każdy działający proces ma również unikalny identyfikator procesu (PID), czyli numer obowiązujący w całym systemie. Identyfikatory PID można wyświetlić za pomocą jobs -l lub ps.
sleep 100 &
jobs -lZatrzymywanie zadań (kill)
Aby zakończyć działające w tle lub zatrzymane zadanie, można użyć polecenia kill. Można podać numer zadania (np. kill %1) albo jego identyfikator PID (np. kill 12345).
kill wysyła sygnał do procesu. Domyślnie jest to SIGTERM (łagodne zakończenie). Aby wymusić zakończenie, należy użyć polecenia kill -9 %job_number lub kill -9 PID.
sleep 500 &
jobs
# Assuming sleep is job 1:
kill %1
jobsQuiz: zarządzanie zadaniami
Uruchomił(a) Pan/Pani długotrwałe polecenie (np. find / -name *.txt), ale teraz potrzebuje odzyskać terminal, aby wpisać inne polecenie. Jaka jest prawidłowa kolejność czynności, aby wstrzymać polecenie find, przenieść je do tła, tak aby nadal działało, a następnie potwierdzić, że jest zadaniem działającym w tle?
Podsumowanie: zarządzanie zadaniami
Opanował(a) Pan/Pani zarządzanie zadaniami!
Ctrl+Zwstrzymuje proces działający na pierwszym planie.jobswyświetla listę wszystkich aktywnych zadań.fg %Nprzenosi zadanieNna pierwszy plan.bg %Nprzenosi zatrzymane zadanieNdo tła.- Dopisanie
&uruchamia polecenie bezpośrednio w tle. kill %Nlubkill PIDkończy zadanie.
Pozwala to sprawnie zarządzać wieloma zadaniami w ramach jednej sesji terminala!
Często zadawane pytania
Czy lekcja „Zarządzanie zadaniami (bg, fg, jobs)” jest bezpłatna?
Tak — pełny tekst „Zarządzanie zadaniami (bg, fg, jobs)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Zarządzanie zadaniami (bg, fg, jobs)”?
Opanuje Pan/Pani zarządzanie procesami działającymi w tle i na pierwszym planie, a także wstrzymywanie, wznawianie i wyświetlanie zadań w sesji powłoki. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Zarządzanie zadaniami (bg, fg, jobs)”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Zarządzanie zadaniami (bg, fg, jobs)
- Rozwijanie poleceń powłoki i globbing
- Aliasy i niestandardowe znaki zachęty
- Funkcje powłoki i wielokrotnego użytku fragmenty kodu