Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 125

Автор НСйл ΠœΡΡ‚ΡŒΡŽ

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСсса Π΅ΡΡ‚ΡŒ собствСнный стСк, примСняСмый для Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² функциях ΠΈ для управлСния Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ…. Π£ процСсса Ρ‚Π°ΠΊΠΆΠ΅ собствСнноС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, содСрТащСС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для примСнСния Π² Π΄Π°Π½Π½ΠΎΠΌ процСссС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ putenv ΠΈ getenv, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π³Π»Π°Π²Π΅ 4. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ собствСнный счСтчик ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, запись Ρ‚ΠΎΠ³ΠΎ мСста, Π΄ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ добрался Π·Π° врСмя выполнСния, ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ исполнСния. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ процСссы ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² исполнСния.

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… систСмах Linux ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСмах UNIX сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ "Ρ„Π°ΠΉΠ»ΠΎΠ²" Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /proc. Π­Ρ‚ΠΎ скорСС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅, Ρ‡Π΅ΠΌ истинныС Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚.ΠΊ. ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ "Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΡŒ" процСссов Π²ΠΎ врСмя ΠΈΡ… выполнСния, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, Π’ Π³Π»Π°Π²Π΅ 3 ΠΌΡ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы /proc.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Linux, ΠΊΠ°ΠΊ ΠΈ UNIX, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ систСмой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти, которая удаляСт страницы ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ТСсткий диск, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большим количСством процСссов, Ρ‡Π΅ΠΌ позволяСт объСм физичСской памяти.

Π’Π°Π±Π»ΠΈΡ†Π° процСссов

Π’Π°Π±Π»ΠΈΡ†Π° процСссов Linux ΠΏΠΎΠ΄ΠΎΠ±Π½Π° структурС Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅ΠΉ всС процСссы, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΡ… PID, состояниС ΠΈ строку ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ps. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма управляСт процСссами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², PID, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ процСссов. Π£ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€, поэтому число процСссов, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… систСмой, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ. Π’ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… систСмах UNIX ΠΎΠ½ΠΎ Ρ€Π°Π²Π½ΡΠ»ΠΎΡΡŒ 256 процСссам. Π‘ΠΎΠ»Π΅Π΅ соврСмСнныС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ослабили это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ объСмом памяти, доступным для формирования элСмСнта Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ процСссов.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ процСссов

Команда ps ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ выполняСмыС Π²Π°ΠΌΠΈ процСссы, процСссы, выполняСмыС Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΈΠ»ΠΈ всС процСссы Π² систСмС. Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°:

$ ps -ef

UID  PID PPID  Π‘ STIME  TTY      TIME CMD

root 433  425  0 18:12  tty1 00:00:00 [bash]

rick 445  426  0 18:12  tty2 00:00:00 -bash

rick 456  427  0 18:12  tty3 00:00:00 [bash]

root 467  433  0 18:12  tty1 00:00:00 sh /usr/X11R6/bin/startx

root 474  467  0 18:12  tty1 00:00:00 xinit /etc/X11/xinit/xinitrc --

root 478  474  0 18:12  tty1 00:00:00 /usr/bin/gnome-session

root 487    1  0 18:12  tty1 00:00:00 gnome-smproxy --sm-client-id def

root 493    1  0 18:12  tty1 00:00:01 [enlightenment]

root 506    1  0 18:12  tty1 00:00:03 panel --sm-client-id defaults

root 508    1  0 18:12  tty1 00:00:00 xscreensaver -no-splash -timeout

root 510    1  0 18:12  tty1 00:00:01 gmc --sm-client-id default10

root 512    1  0 18:12  tty1 00:00:01 gnome-help-browser --sm-client-i

root 649  445  0 18:24  tty2 00:00:00 su

root 653  649  0 18:24  tty2 00:00:00 bash

neil 655  428  0 18:24  tty4 00:00:00 -bash

root 713    1  2 18:27  tty1 00:00:00 gnome-terminal

root 715  713  0 18:28  tty1 00:00:00 gnome-pty-helper

root 717  716 13 18:28 pts/0 00:00:01 emacs

root 718  653  0 18:28  tty2 00:00:00 ps -ef

Π’Ρ‹Π²ΠΎΠ΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… процСссах, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ процСссы, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Emacs Π² графичСской срСдС X ОБ Linux. НапримСр, столбСц TTY ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, с ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° стартовал процСсс, столбСц TIME ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ врСмя ЦПУ, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ, Π° столбСц CMD β€” ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½ΡƒΡŽ для запуска процСсса. Π”Π°Π²Π°ΠΉΡ‚Π΅ познакомимся ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΠ· этих процСссов.

neil 655  428  0 18:24  tty4 00:00:00 -bash

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ рСгистрация Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° Π½Π° консоли Π½ΠΎΠΌΠ΅Ρ€ 4. Π­Ρ‚ΠΎ просто консоль Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. ВыполняСмая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ β€” это стандартная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Linux, bash.

root 467  433  0 18:12  tty1 00:00:00 sh /usr/X11R6/bin/startx

X Window System Π±Ρ‹Π»Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ startx. Π­Ρ‚ΠΎ сцСнарий ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт сСрвСр X ΠΈ выполняСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ систСмы X.

root 717  716 13 18:28 pts/0 00:00:01 emacs

Π­Ρ‚ΠΎΡ‚ процСсс прСдставляСт ΠΎΠΊΠ½ΠΎ Π² систСмС X, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Emacs. Он Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ диспСтчСром Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° запрос Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Командной ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Π±Ρ‹Π» Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ псСвдотСрминал pts/0 для считывания ΠΈ записи.

root 512    1  0 18:12  tty1 00:00:01 gnome-help-browser --sm-client-i

Π­Ρ‚ΠΎ ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ систСмы ΠΏΠΎΠΌΠΎΡ‰ΠΈ срСды GNOME, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ диспСтчСром.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ps Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ процСссы, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ, консоли, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ связи ΠΈΠ»ΠΈ псСвдотСрминалу. Π”Ρ€ΡƒΠ³ΠΈΠ΅ процСссы Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π±Π΅Π· взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это систСмныС процСссы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ систСма Linux примСняСт для управлСния совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ рСсурсами. ΠšΠΎΠΌΠ°Π½Π΄Ρƒ ps ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для отобраТСния всСх Ρ‚Π°ΠΊΠΈΡ… процСссов, использовав ΠΎΠΏΡ†ΠΈΡŽ -Π΅ ΠΈ запросив "ΠΏΠΎΠ»Π½ΡƒΡŽ" ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ -f.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Вочная синтаксичСская запись ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ps ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… систСмах. ВСрсия GNU ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ps, примСняСмая Π² Linux, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΡ†ΠΈΠΈ, взятыС ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ps, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΈΠ· UNIX-систСм BSD ΠΈ AT&T, ΠΈ добавляСт мноТСство своих ΠΎΠΏΡ†ΠΈΠΉ. Π‘ΠΌ. ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ справочноС руководство для получСния ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… свСдСний ΠΎ доступных опциях ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ps.

БистСмныС процСссы

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ нСсколько процСссов, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ²ΡˆΠΈΡ…ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ систСмС Linux. Π’Ρ‹Π²ΠΎΠ΄ Π±Ρ‹Π» сокращСн для облСгчСния понимания. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ состояниС ΠΈΠ»ΠΈ статус процСсса. Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ps столбца STAT прСдоставляСт ΠΊΠΎΠ΄Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния процСсса. Π‘Π°ΠΌΡ‹Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнныС ΠΊΠΎΠ΄Ρ‹ пСрСчислСны Π² Ρ‚Π°Π±Π». 11.1. Бмысл Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· Π½ΠΈΡ… станСт понятСн Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ Π² этой Π³Π»Π°Π²Π΅. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΆΠ΅ Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ спокойно ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.


Π’Π°Π±Π»ΠΈΡ†Π° 11.1

Код STAT ОписаниС S Бпящий. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΆΠ΄Π΅Ρ‚ появлСния события, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ сигнал ΠΈΠ»ΠΈ активизация Π²Π²ΠΎΠ΄Π° R Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ. Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ говоря "работоспособный", Ρ‚.Π΅. Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ, Π»ΠΈΠ±ΠΎ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ D НСпрСрывно спящий (ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠΉ). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΆΠ΄ΡƒΡ‰ΠΈΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° T ΠžΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ остановлСнный систСмой управлСния заданиями ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈΠ»ΠΈ находящийся ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Z Π£ΠΌΠ΅Ρ€ΡˆΠΈΠΉ ΠΈΠ»ΠΈ процСсс-Π·ΠΎΠΌΠ±ΠΈ N Π—Π°Π΄Π°Ρ‡Π° с Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ, "nice" W Π Π°Π·Π±ΠΈΡ‚Ρ‹ΠΉ Π½Π° страницы (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Linux с ядром вСрсии 2.6 ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вСрсий) S Π’Π΅Π΄ΡƒΡ‰ΠΈΠΉ процСсс сСанса + ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… процСссов l ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹ΠΉ процСсс < Π—Π°Π΄Π°Ρ‡Π° с высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ

$ ps Π°Ρ…

PID   TTY   STAT TIME COMMAND

1     ?     Ss   0:03 init [5]

2     ?     S    0:00 [migration/0]

3     ?     SN   0:00 [ksoftirqd/0]

4     ?     S<   0:05 [events/0]

5     ?     S<   0:00 [khelper]

6     ?     S<   0:00 [kthread]

840   ?     S<   2:52 [kjournald]

888   ?     S<s  0:03 /sbin/udevd --daemon

3069  ?     Ss   0:00 /sbin/acpid

3098  ?     Ss   0:11 /usr/sbin/hald --daemon=yes

3099  ?     S    0:00 hald-runner

8357  ?     Ss   0:03 /sbin/syslog-ng

8677  ?     Ss   0:00 /opt/kde3/bin/kdm

9119  ?     S    0:11 konsole [kdeinit]

9120  pts/2 Ss   0:00 /bin/bash

9151  ?     Ss   0:00 /usr/sbin/cupsd

9457  ?     Ss   0:00 /usr/sbin/cron

9479  ?     Ss   0:00 /usr/sbin/sshd -o PidFile=/var/run/sshd.init.pid

9618  tty1  Ss+  0:00 /sbin/mingetty --noclear tty1

9619  tty2  Ss+  0:00 /sbin/mingetty tty2

9621  tty3  Ss+  0:00 /sbin/mingetty tty3

9622  tty4  Ss+  0:00 /sbin/mingetty tty4

9623  tty5  Ss+  0:00 /sbin/mingetty tty5

9638  tty6  Ss+  0:00 /sbin/mingetty tty6

10359 tty1  Ss+ 10:05 /usr/bin/Xorg -br -nolisten tcp :0 vt7 -auth

10360 ?     S    0:00 -:0

10381 ?     Ss   0:00 /bin/sh /usr/bin/kde

10438 ?     Ss   0:00 /usr/bin/ssh-agent /bin/bash /etc/X11/xinit/xinitrc

10478 ?     S    0:00 start_kdeinit --new-startup +kcminit_startup

10479 ?     Ss   0:00 kdeinit Running...

10500 ?     S    0:53 kdesktop [kdeinit]

10502 ?     S    1:54 kicker [kdeinit]

10524 ?     Sl   0:47 beagled /usr/lib/beagle/BeagleDaemon.exe --bg

10530 ?     S    0:02 opensuseupdater