[go: up one dir, main page]

Przejdź do zawartości

Linux/Procesy: Różnice pomiędzy wersjami

Z Wikibooks, biblioteki wolnych podręczników.
Usunięta treść Dodana treść
Vuvar1 (dyskusja | edycje)
m -sdu, do wikibooks
m MalarzBOT: {{DoWikibooks}} przeniesiono do {{Do Wikibooks}} + WP:SK
Linia 1: Linia 1:
{{DoWikibooks}}
{{Do Wikibooks}}
Z systemami unixowymi związane jest pojęcie procesu. W takim ujęciu proces rozumiany jest jako wykonywany w systemie program.
Z systemami unixowymi związane jest pojęcie procesu. W takim ujęciu proces rozumiany jest jako wykonywany w systemie program.



Wersja z 23:50, 12 lut 2008

Szablon:Do Wikibooks Z systemami unixowymi związane jest pojęcie procesu. W takim ujęciu proces rozumiany jest jako wykonywany w systemie program.

Każdy proces charakteryzuje się pewnymi atrybutami :

  • przestrzeń adresowa,
  • licznik programu,
  • licznik stanu,
  • licznik rejetru,
  • deskryptory pliku (unikalny identyfikator pliku wykorzystywany przez system operacyjny)
  • dane procesu
  • zależności rodzinne
  • liczniki statyczne

Wynikiem obecności w systemie procesów jest to, że jądro systemu może nim sterować tak i może go ustawić w kilku stanach :

  • pracujący w trybie użytkownika (proces znajduje się na procesorze i wykonuje kod),
  • pracujący w trybie jądra (jądro wykonuje wywołanie systemowe, wykonane przez proces)
  • uśpiony (proces czeka na jakies zdarzenie, np. na odczyt danych z dysku lub otrzymanie danych z sieci)
  • gotowy do wykonania (może być uruchomiony w każdej chwili, jednak nie ma jeszcze

przydzielonego procesora)

  • zombie (proces zakończył działanie i czeka na odebranie kodu powrotu przez proces macierzysty),

Podstawowym poleceniem do zarządzania procesami przez użytkownika jest : ps

ps [-] [lujsvmaxscewhrnu] [txx] [0 [+/-] k1 [[+/-] k2 …]] [pids]

  • l - długi format
  • u - format użytkownika podaje nazwę użytkownika czas start
  • m - wyświetla informacje o pamięci
  • f - format drzewiasty
  • a - pokaż także procesy innych użytkowników
  • r - tylko pracujące procesy
   PID   TTY   TIME        CMD
 1157  tty2    00:00:13   bash
 1720  tty2    00:00:00   ps 

np.

  • ps –ax – wyświetla wszystkie procesy
  • pstree – wyświetla drzewo procesu w systemie

Aby zobaczyć wszystkie procesy w systemie, używając standardowej składni:

  • ps -e
  • ps -ef
  • ps -eF
  • ps -ely

Aby wypisać drzewo procesów:

  • ps -ejH
  • ps axjf

Aby wyświetlić informację o wątkach:

  • ps -eLf
  • ps axms

Aby wyświetlić informacje związane z bezpieczeństwem:

  • ps -eo euser,ruser,suser,fuser,f,comm,label
  • ps axZ
  • ps -eM

Aby zobaczyć wszystkie procesy poza tymi działającymi jako root(rzeczywiste i efektywne ID):

  • ps -U root -u root -N

Aby wyświetlić wszystkie procesy w formacie zdefiniowanym przez użytkownika:

  • ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
  • ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
  • ps -eopid,tt,user,fname,tmout,f,wchan

W wielu przypadkach zachodzi potrzeba usunięcie przez użytkownika procesu z systemu UNIX. Użytkownik ma takie prawo w stosunku do swoich procesów natomiast użytkownik root do wszystkich.

Polecenia do tego służace mają następującą składnię :

kill [-s sygnał /-p] [-a] pid …

np.

Pozwala ono wysyłać sygnaly do procesów (można używać nazw sygnałów lub ich numerów):

  • kill -l - wyświetla dopuszczalne nazwy sygnałów
  • kill -kill 1234 - wysłanie sygnału SIGKILL do procesu z pid=1234
  • kill -9 1234 - to samo wyżej, bo SIGKILL ma nr 9
  • kill -int 1234 - wysłanie sygnału SIGINT do procesu z pid=1234
  • kill -2 1234 - to samo wyżej, bo SIGINT ma nr 2

Można wysyłać sygnał do większej liczby procesów np :

  • kill -kill 0 - wysyła sygnał do wszystkich procesów w grupie procesów procesu wysyłającego
  • kill -kill 1234 1235 - do dwóch procesów o podanych pid-ach

Inne przykłady :

  • kill -9 8606
  • kill -0 8606
  • killall –KILL tree - zakończenie procesu
  • killall –HnP tree – restart procesu
  • PID – identyfikator procesu
  • TTY – terminal
  • TIME – łączny czas procesora w formacie dd-hh:mm:ss
  • CMD - polecenie (wraz z parametrami), które spowodowało uruchomienie procesu
  • USER – identyfikator użytkownika będącego właścicielem procesu % CPU – procentowe zużycie procesora przez proces %
  • MEM – procent użycia pamięci operacyjnej przez czas VS2- rzeczywisty rozmiar procesu w kilobajtach
  • RSS - ilość fizycznej pamięci używanej przez proces
  • STAT – status procesu
  • START - czas uruchomienia procesu
  • kill <PID> - wysyłanie sygnału TERM do procesu o numerze identyfikacyjnym PID
  • Kill - <nr sygnału> <PID> -wysyłanie wskazanego procesu sygnału o podanym numerze
  • kill – l – zwraca nazwy i numer sygnałów kill – l <nr sygnału> - zwraca nazwę sygnału o podanym numerze
  • kill -9-1 - Zabicie wszystkich procesów, które można zabić

Proces o PID= -1 oznacza wszystkie procesy które wolno zabić poza procesem kill

killall :

  • -g- Zabija grupę procesów, do której należy podany proces
  • –i- Pyta o zgodę przed zabiciem każdego procesu
  • –v- Wypisuje komunikat o każdym udanym wysłaniu sygnału
  • –w- Czeka aż zabite zostaną wszystkie wskazane procesy Może czekać bez końca jeśli proces zignorował sygnał lub przeszedł do stanu zombie np.

killall –v mozilla