Linux/Procesy: Różnice pomiędzy wersjami
m -sdu, do wikibooks |
m MalarzBOT: {{DoWikibooks}} przeniesiono do {{Do Wikibooks}} + WP:SK |
||
Linia 1: | Linia 1: | ||
{{ |
{{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