HOME


 
Jeżeli ładowanie trwa zbyt długo (powyżej 2 min.), to zapraszam o innej porze.
Zobacz statystyki odwiedzin by ustalić porę najmniejszego obciążenia serwera.

Spakowana witryna o Linuksie w formacie RAR
 
gorzow-wlkp.pl/linux
PROCESY, ZADANIA


 
Jest to ciąg dalszy ze strony ZARZĄDZANIE.
 
PROCES to działający program (jest zawsze tworzony przez inne procesy). Każdy proces ma swój numer PID (Process IDentifier). Proces można:
  • widzieć na ekranie monitora (właściwiej: efekty pracy procesu będą widoczne). Taki proces nazywamy pierwszoplanowym.
  • przenieść "w tło" (będzie pracował, ale bez pokazywania efektów na ekranie). Taki proces nazywamy drugoplanowym.
  • "zawiesić" (wstrzymać). Taki proces nazywamy drugoplanowym.
  • "zabić" (zakończyć)
ZADANIE to proces drugoplanowy, który może być "zawieszony" lub działający "w tle". Numer zadania jest do wglądu za pomocą zlecenia jobs.
 

 
ZADANIE CZYLI PROCES DZIAŁAJĄCY "W TLE"
 
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:
    1. 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
    2. 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.
    3. 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
    4. 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.

 

 


 
twarogal@wp.pl

Wszelkie prawa są zastrzeżone, z wyłączeniem hobbystów, którzy umieszczają opracowania na stronach bez reklam. Dla hobbystów zawartość tej strony jest dostępna bez ograniczeń - używanie i przerabianie moich artykułów są jak najbardziej wskazane, ale na swoją odpowiedzialność.

Aby uniknąć zasysania całej witryny gorzow-wlkp.pl/linux za pomocą programów typu TeleportPro, WebCopier itd. informuję, że udostępniłem spakowaną wersję (w formacie RAR).

 




 

gorzow-wlkp.pl