Jaka idea przyświecała przenoszeniu procesów "w tło"? Otóż
pracując w powłoce tekstowej masz do użytku JEDEN ekran. Musisz
więc mieć narzędzie, umożliwiające uruchamianie wielu jednocześnie pracujących procesów, choć
efekty tylko jednego (tzw.
pierwszoplanowego) będą w danej chwili wyświetlane. Proces można przenieść "w tło" na dwa sposoby:
- Proces można przenieść "w tło" dodając na końcu zlecenia znaczek & np. wget -r -A.jpg http://wp.pl/ & . Pojawi się przykładowy komunikat: [3] 2348,
który poinformuje nas, że proces o numerze 2348 czeka
na wyświetlenie z numerem 3 na liście
zadań. Taki proces oczywiście działa, ale jego efekty nie są widoczne na ekranie.
- Proces "pierwszoplanowy" można przenieść "w tło" pierw "zawieszając" proces (opis poniżej), a następnie uruchamiając go "w tle" za pomocą zlecenia: & bg numer_zadania. Numer zadania jest do wglądu za pomocą zlecenia jobs
Proces pracujący "w tle" jest "drugoplanowy". Jak przenieść go do poziomu "pierwszoplanowego", by np. zobaczyć w
terminalu wyniki dotychczasowej jego pracy? Za pomocą zlecenia
fg numer_zadania. Numer zadania jest do wglądu za pomocą zlecenia
jobs
ZADANIE CZYLI PROCES "ZAWIESZONY" (wstrzymany, ale nie zabity)
Proces można przenieść "w tło" bez przerywania jego pracy, ale można też
proces "zawiesić", by w tym czasie odciążyć procesor do innych celów.
Aby
proces "zawiesić" należy w
trakcie jego działania w trybie pierwszoplanowym wcisnąć
CTRL Z. Uwaga: skrót
CTRL C "zabije" proces!
Aby
zawieszony proces
uruchomić do poziomu "pierwszoplanowego" (by zaczął pracować i wyświetlać wyniki pracy w
terminalu) należy pierw
uruchomić proces "w tle" za pomocą zlecenia:
& bg numer_zadania i dopiero potem wpisać zlecenie:
fg numer_zadania. Numer zadania jest do wglądu za pomocą zlecenia
jobs
PROCES ZAKOŃCZONY CZYLI "ZABITY"
Zabicie procesu, to inaczej
wymuszone przerwanie działania procesu.
Aby
proces "zabić" należy:
- w trakcie jego działania w trybie pierwszoplanowym wcisnąć CTRL C
- za pomocą polecenia kill:
- polecenie kill zabijające proces po pobraniu numeru zadania:
zlecenie kill ze znakiem procentu
% i numerem zadania. Numer zadania jest do wglądu za pomocą zlecenia jobs. Przykład: kill %3
- polecenie kill zabijające proces po pobraniu numeru (PID) procesu:
zlecenie kill numer_procesu
zlecenie kill `cat /var/run/ppp0.pid` . Zlecenie to używa dwóch poleceń: cat
oraz kill. Zlecenie cat samo odczyta numer_procesu i
podsunie ten numer zleceniu kill.
kill z opcją -9 czyli np. kill -9 2475 zabije proces o nr PID 2475
mimo protestów systemu.
- Przypominam, że aby zabić wszystkie procesy (także te, których właścicielami są inni użytkownicy) należy jako root wykonać polecenie:
killall nazwapolecenia czyli np. killall mail
- Sygnały polecenia kill:
-9 - to już znamy
kill -HUP 2475 - restart procesu 2475
-2 - przerwanie wykonania procesu
-3 - zakończenie wykonania procesu
-15 - domyślny sygnał polecenia kill (miękkie zamknięcie) i nie trzeba go wpisywać
-19 - wstrzymanie wykonywania procesu (możliwe jego ponowne wznowienie za pomocą polecenia fg lub bg)
- Za pomocą zlecenia killall
Zlecenie kill wymaga znajomości numeru procesu lub zadania, natomiast zlecenie killall potrzebuje nazwy procesu. Dodatkową zaletą zlecenia killall jest jego umiejętność zabicia wszystkich procesów związanych z danym procesem (także tych, których właścicielami są inni użytkownicy). Dobrze jest wyświetlić (przed zabiciem procesu) drzewo procesów zleceniem pstree. Bez dodatkowych opcji wyświetli wszystkie procesy z korzenia init. Znając PID procesu np. 427 można wpisać: pstree 427

Numer procesu (a właściwiej
identyfikator procesu PID) jest dostępny pod warunkiem, że znamy nazwę programu uruchamiającego dany proces. PID uzyskamy:
- poprzez edycję pliku w katalogu /var/run/ . Trzeba odszukać właściwy plik o nazwie zgodnej z nazwą programu uruchamiającego proces.
- za pomocą zlecenia ps (najlepiej użyć zlecenia ps aux oczywiście wydanym pod rootem). Można wyniki przeczesać zleceniem:
ps aux|grep nazwa_polecenia
oczywiście o ile znamy dokładną nazwę zlecenia, które uruchomiło dany proces.
Zlecenie ps wydane bez opcji
wyświetla listę procesów bieżącego użytkownika z
uwzględnieniem danych: identyfikator procesu (PID), terminal (TTY),
status (STAT), czas procesora wykorzystany przez proces i nazwę
samego procesu. Wspomniana kolumna STAT może przybrać: (R)-proces
działający, (S)-uśpiony, (T)-zatrzymany, (Z)-zombie.
Opcje programu ps wyświetlającego listę procesów:
a wszystkie procesy (ps a)
x procesy obsługiwane przez demony (nie posiadające swojego terminala)
u daje podobny obraz co polecenie top
f przedstawia zależności pomiędzy procesami
t procesy związane terminalem np. ps t S1 pokaże
procesy przypisane do terminala ttyS1.
Standardowa i najczęściej używana forma zlecenia (pod rootem) ps to:
ps -aux
Standardowa i najczęściej używana forma zlecenia pod zwykłym userem:
ps -A lub ps -A | grep nazwaprogramu
- za pomocą zlecenia pidof nazwaprogramu. Zlecenie pidof podaje PID oraz inne dodatkowe informacje związane z procesem.

Przypominam, że czasami zabicie procesu pociągnie za sobą zamknięcie innych, potomnych procesów. Dobrze jest wyświetlić
drzewo procesów zleceniem
pstree. Bez dodatkowych opcji wyświetli wszystkie procesy z korzenia
init. Znając PID procesu np. 427 można wpisać:
pstree 427
Przypominam, że numer
zadania jest do wglądu za pomocą zlecenia
jobs.
Proces "zombie" to taki, który został "zabity" i zwolnił zasoby systemowe, ale z powodu jakiegoś błędu nie został usunięty z listy działających procesów.
Polecenie (program)
top wyświetla tablicę
obrazujacą zajętość pamięci i procesora posortowaną według ilości
czasu pracy procesora. Po zakończeniu prac wyczyść ekran zleceniem
clear.
Pamiętaj, że w razie problemów z procesami i zadaniami możesz uruchomić kolejną powłokę skrótem
CTRL ALT
F2 oraz F3, F4, F5, F6.
Do zabijania procesów pod okienkami (np. KDE) można wykorzystać zlecenie
xkill . Aby uruchomić to narzędzie, należy wcisnąć klawisze
ALT F2 i wpisać zlecenie
xkill. Zamiast standardowego kursora pojawi się trupia czaszka. Aby zamknąć "zawieszone" okienko, wystarczy kliknąć w niego myszką. Uwaga! Przez nieuwagę możesz przypadkowo kliknąć w Desktop i zabić proces wywietlania Desktopu. Wówczas wyloguj się skrótem
CTRL ALT DELETE i zaloguj się na nowo. W razie problemów pierw zabij okienka skrótem CTRL ALT BACKSPACE, a potem szybko wciśnij klawisze
CTRL ALT DELETE
Innym sposobem uruchomienia programu
xkill jest
utworzenie na Desktopie ikonki ze skrótem.