{"id":465,"date":"2017-04-01T12:07:59","date_gmt":"2017-04-01T10:07:59","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=465"},"modified":"2017-06-03T15:52:05","modified_gmt":"2017-06-03T13:52:05","slug":"procesy","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2017\/04\/01\/procesy\/","title":{"rendered":"Procesy"},"content":{"rendered":"<p>Proces to program, aplikacja lub komenda uruchomiona w systemie (wczytana do pami\u0119ci operacyjnej). To jednostk\u0105 s\u0142u\u017c\u0105ca do dostarczania zasob\u00f3w systemowych. Proces tworzony jest w pami\u0119ci operacyjnej we w\u0142asnej przestrzeni adresowej gdy program, aplikacja lub komenda jest zainicjalizowana. Procesy zorganizowane s\u0105 hierarchicznie, ka\u017cdy proces ma proces nadrz\u0119dny (wywo\u0142uj\u0105cy, ang. <em>calling process<\/em>) i mo\u017ce mie\u0107 wiele proces\u00f3w potomnych (ang. <em>child process<\/em>), kt\u00f3rym przekazuje wiele atrybut\u00f3w w chwili utworzenia. <!--more-->Ka\u017cdy proces posiada numer identyfikacyjny &#8211; identyfikator procesu &#8211; PID (<em>process identifier<\/em>), kt\u00f3ry jest u\u017cywany przez j\u0105dro do zarz\u0105dzania i kontroli jego cyklem \u017cyciowym. Gdy proces ko\u0144czy sw\u00f3j cykl \u017cyciowy jest terminowany (zabijany), co jest raportowane do procesu nadrz\u0119dnego i wszystkie zasoby przyznane temu procesowi s\u0105 uwalniane a PID jest usuwany.<\/p>\n<p>Wiele proces\u00f3w jest uruchamianych w czasie \u0142adowania systemu. Takie procesy rezyduj\u0105\u00a0 pami\u0119ci operacyjnej i oczekuj\u0105 na \u017cyczenie skorzystania z ich us\u0142ug. Takie systemowe procesy uruchomione w tle nazywamy <em>demonami<\/em> (ang. <em>daemons<\/em>).<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Wy\u015bwietlanie i monitorowanie proces\u00f3w.<\/span><\/p>\n<p>System operacyjny mo\u017ce mie\u0107 setki tysi\u0119cy uruchomionych w jednym czasie proces\u00f3w. Procesy mog\u0105 by\u0107 wy\u015bwietlane i monitorowane przez wiele narz\u0119dzi, m.in. przez <em>ps<\/em>, <em>top i htop<\/em>.<\/p>\n<p>Komenda ps uruchomiona bez \u017cadnych opcji wy\u015bwietla tylko list\u0119 proces\u00f3w zwi\u0105zanych z terminalem, na kt\u00f3rym ta komenda jest wywo\u0142ywana:<\/p>\n<pre><code># ps<\/code>\r\n <code>\u00a0 PID TTY\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TIME CMD<\/code>\r\n <code>\u00a0 411 pts\/4\u00a0\u00a0\u00a0 00:00:00 bash<\/code>\r\n <code>13127 pts\/4\u00a0\u00a0\u00a0 00:00:00 ps<\/code><\/pre>\n<p><em>Przyk\u0142ady<\/em><br \/>\nWszystkie procesy w systemie przy u\u017cyciu standardowej sk\u0142adni:<\/p>\n<pre><code># ps -e<\/code>\r\n<code># ps -ef<\/code>\r\n<code># ps -eF<\/code>\r\n<code># ps -ely<\/code><\/pre>\n<p>Wszystkie procesy w systemie przy u\u017cyciu sk\u0142adni BSD:<\/p>\n<pre><code># ps ax<\/code>\r\n<code># ps axu<\/code><\/pre>\n<p>Wy\u015bwietlenie drzewa proces\u00f3w:<\/p>\n<pre><code>#\u00a0 ps -ejH<\/code>\r\n<code>#\u00a0 ps axjf<\/code><\/pre>\n<p>Informacje o w\u0105tkach:<\/p>\n<pre><code># ps -eLf<\/code>\r\n<code># ps axms<\/code><\/pre>\n<p>Informacje zwi\u0105zane z bezpiecze\u0144stwem:<\/p>\n<pre><code># ps -eo euser,ruser,suser,fuser,f,comm,label<\/code>\r\n<code># ps axZ<\/code>\r\n<code># ps -eM<\/code><\/pre>\n<p>Aby zobaczy\u0107 wszystkie procesy uruchomione przez roota:<\/p>\n<pre><code># ps -U root -u root u<\/code><\/pre>\n<p>Wy\u015bwietlanie wszystkich proces\u00f3w w zdefiniowanym przez siebie formacie:<\/p>\n<pre><code># ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm<\/code>\r\n<code># ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm<\/code>\r\n<code># ps -eopid,tt,user,fname,tmout,f,wchan<\/code><\/pre>\n<p>Wy\u015bwietlenie tylko ID procesu syslogd:<\/p>\n<pre><code># ps -C syslogd -o pid=<\/code><\/pre>\n<p>Wy\u015bwietlenie nazwy procesu o PID 42:<\/p>\n<pre><code># ps -p 42 -o comm=<\/code><\/pre>\n<p>Wyj\u015bcie polecenia <em>ps<\/em> standardowo rozbite jest na osiem kolumn, kt\u00f3re pokazuj\u0105 dok\u0142adne informacje o ka\u017cdym procesie uruchomionym w systemie.<\/p>\n<table style=\"width: 766px;\">\n<tbody>\n<tr style=\"height: 26px;\">\n<td style=\"width: 65.0833px; height: 26px;\"><span style=\"color: #808080;\"><em>Kolumna<\/em><\/span><\/td>\n<td style=\"width: 681.917px; height: 26px;\"><span style=\"color: #808080;\"><em>Opis<\/em><\/span><\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 65.0833px; height: 26px;\"><span style=\"color: #008000;\">USER<\/span><\/td>\n<td style=\"width: 681.917px; height: 26px;\">ID u\u017cytkownika lub nazwa w\u0142a\u015bciciela procesu.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 65.0833px; height: 26px;\"><span style=\"color: #008000;\">PID<\/span><\/td>\n<td style=\"width: 681.917px; height: 26px;\">ID procesu.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 65.0833px; height: 26px;\"><span style=\"color: #008000;\">PPID<\/span><\/td>\n<td style=\"width: 681.917px; height: 26px;\">ID procesu nadrz\u0119dnego.<\/td>\n<\/tr>\n<tr style=\"height: 26.1001px;\">\n<td style=\"width: 65.0833px; height: 26.1001px;\"><span style=\"color: #008000;\">%CPU <\/span><\/td>\n<td style=\"width: 681.917px; height: 26.1001px;\">Zu\u017cycie procesora przez proces.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 65.0833px; height: 26px;\"><span style=\"color: #008000;\">%MEM<\/span><\/td>\n<td style=\"width: 681.917px; height: 26px;\">Zu\u017cycie pami\u0119ci przez proces.<\/td>\n<\/tr>\n<tr style=\"height: 53px;\">\n<td style=\"width: 65.0833px; height: 53px;\"><span style=\"color: #008000;\">TTY<\/span><\/td>\n<td style=\"width: 681.917px; height: 53px;\">Terminal, na kt\u00f3rym zosta\u0142 uruchomiony proces. &#8220;Console&#8221; oznacza konsol\u0119 systemow\u0105, &#8220;?&#8221; oznacza proces uruchomiony w tle.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 65.0833px; height: 26px;\"><span style=\"color: #008000;\">\u00a0START<\/span><\/td>\n<td style=\"width: 681.917px; height: 26px;\">\u00a0Data uruchomienia\u00a0 procesu.<\/td>\n<\/tr>\n<tr style=\"height: 53px;\">\n<td style=\"width: 65.0833px; height: 53px;\"><span style=\"color: #008000;\">TIME<\/span><\/td>\n<td style=\"width: 681.917px; height: 53px;\">\u0141\u0105czny czas dzia\u0142ania procesu, w\u0142\u0105czaj\u0105c czas w przestrzeni u\u017cytkownika i w przestrzeni j\u0105dra.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 65.0833px; height: 26px;\"><span style=\"color: #008000;\">COMMAND<\/span><\/td>\n<td style=\"width: 681.917px; height: 26px;\">Nazwa komendy uruchamiaj\u0105cej proces.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Procesy uruchomione w tle nie maj\u0105 \u017cadnego powi\u0105zania z terminalem na li\u015bcie proces\u00f3w wy\u015bwietlanych przez ps, terminal (TTY) symbolizuje tutaj znak &#8220;?&#8221;. Im PID i PPID ma mniejszy numer ID tym wcze\u015bniej dany proces zosta\u0142 uruchomiony. Proces z PID 0 uruchomiony zosta\u0142 przy starcie systemu, po nim uruchomiony zosta\u0142 proces z PID 1, itd.\u00a0 Informacje o ka\u017cdym uruchomionym procesie sk\u0142adowane s\u0105 w katalogu <em>\/proc<\/em>, sk\u0105d dane do wy\u015bwietlenia pobieraj\u0105 programy takie jak<em> ps<\/em>.<\/p>\n<p>Innym programem wy\u015bwietlaj\u0105cym dane\u00a0 o procesach jest <em>top<\/em>. Lepsz\u0105 wersj\u0105 tego programu jest <em>htop<\/em>, kt\u00f3ry uwzgl\u0119dnia rdzenie procesora wy\u015bwietlaj\u0105c procesy systemowe.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Stany, w kt\u00f3rych znajduj\u0105 si\u0119 procesy.<\/span><\/p>\n<p>W czasie swojego cyklu \u017cyciowego proces wielokrotnie zmienia sw\u00f3j stan. O tym jak cz\u0119sto proces zmienia sw\u00f3j stan decyduj\u0105 takie czynniki jak obci\u0105\u017cenie procesora, dost\u0119pno\u015b\u0107 pami\u0119ci, priorytet procesu, odpowied\u017a innych aplikacji.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-479 aligncenter\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/ProcessStates-300x179.jpg\" alt=\"\" width=\"516\" height=\"308\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/ProcessStates-300x179.jpg 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/ProcessStates.jpg 622w\" sizes=\"(max-width: 516px) 100vw, 516px\" \/><\/p>\n<p><span style=\"color: #008000;\">Running<\/span> (uruchomiony) &#8211; proces jest wykonywany przez CPU.<br \/>\n<span style=\"color: #008000;\">Sleeping<\/span> (u\u015bpiony) &#8211; proces oczekuje na dane wej\u015bciowe od u\u017cytkownika lub innego procesu.<br \/>\n<span style=\"color: #008000;\">Waiting<\/span> (oczekiwanie) &#8211; proces otrzyma\u0142 dane wej\u015bciowe, na kt\u00f3re czeka\u0142, jest gotowy do uruchomienia jak tylko nadejdzie jego kolej.<br \/>\n<span style=\"color: #008000;\">Stopped<\/span> (zatrzymany) &#8211; proces jest aktualnie zatrzymany i nie uruchomi si\u0119 nawet je\u017celi nadejdzie jego kolej, chyba \u017ce zostanie wys\u0142any do niego sygna\u0142, kt\u00f3ry zmieni jego zachowanie.<br \/>\n<span style=\"color: #008000;\">Zombi<\/span> (defunct) &#8211; proces jest martwy, nie zu\u017cywa \u017cadnych zasob\u00f3w, jest utrzymywany w takim stanie do momentu, w kt\u00f3rym proces nadrz\u0119dny go nie ubije.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Proces to program, aplikacja lub komenda uruchomiona w systemie (wczytana do pami\u0119ci operacyjnej). To jednostk\u0105 s\u0142u\u017c\u0105ca do dostarczania zasob\u00f3w systemowych. Proces tworzony jest w pami\u0119ci operacyjnej we w\u0142asnej przestrzeni adresowej gdy program, aplikacja lub komenda jest zainicjalizowana. Procesy zorganizowane s\u0105 hierarchicznie, ka\u017cdy proces ma proces nadrz\u0119dny (wywo\u0142uj\u0105cy, ang. calling process) i mo\u017ce mie\u0107 wiele proces\u00f3w &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/miro.borodziuk.eu\/index.php\/2017\/04\/01\/procesy\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Procesy&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/465"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=465"}],"version-history":[{"count":22,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/465\/revisions"}],"predecessor-version":[{"id":1307,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/465\/revisions\/1307"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=465"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=465"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}