Робота з процесами

Матеріал з Wiki TNEU
Версія від 00:18, 21 вересня 2012; Donserg (Обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

Команда ps

Призначена для виведення інформації про виконувані процесах. Дана команда має багато параметрів, про які ви можете прочитати в керівництві (man ps). Тут описані лише найбільш часто використовувані команди:

Параметр Опис -a відобразити всі процеси, пов'язані з терміналом (відображаються процеси всіх користувачів)

-e відобразити всі процеси

-t список терміналів відобразити процеси, пов'язані з терміналами

-u ідентифікатори користувачів відобразити процеси, пов'язані з даними ідентифікаторами

-g ідентифікатори груп відобразити процеси, пов'язані з даними ідентифікаторами груп

-x відобразити всі процеси, не пов'язані з терміналом

Наприклад, після введення команди ps-a ви побачите приблизно наступне:

PID TTY TIME CMD

1007 tty1 00:00:00 bash

1036 tty2 00:00:00 bash

1424 tty1 00:00:02 mc

1447 pts / 0 00:00:02 mpg123

2309 tty2 00:00:00 ps

Для виведення інформації про конкретний процесі ми можемо скористатися командою:

  1. ps-ax | grep httpd

698? S 0:01 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A

1261? S 0:00 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A

1262? S 0:00 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A

1263? S 0:00 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A

1264? S 0:00 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A

1268? S 0:00 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A

1269? S 0:00 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A

1270? S 0:00 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A

1271? S 0:00 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A

1272? S 0:00 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A

1273? S 0:00 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A

1280 × S 0:00 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A

Між програмами ps і grep, як результат отримуємо інформацію про всі процеси містять у рядку запуску "httpd". Дану команду (ps-ax | grep httpd) було написав лише для демонстрації - набагато простіше використовувати параметр -С програми ps замість перенаправлення вводу виводу і параметр -e замість -ax.

Програма top

Призначена для виведення інформації про процеси в реальному часі. Процеси сортуються по максимальному займаному процесорного часу, але ви можете змінити порядок сортування. Програма також повідомляє про вільні системні ресурси.

  1. Top

7:49 pm up 5 min, 2 users, load average: 0.03, 0.20, 0.11

56 processes: 55 sleeping, 1 running, 0 zombie, 0 stopped

CPU states: 7.6% user, 9.8% system, 0.0% nice, 82.5% idle

Mem: 130660K av, 94652K used, 36008K free, 0K shrd, 5220K buff

Swap: 72256K av, 0K used, 72256K free 60704K cached

PID USER PRI NI SIZE RSS SHARE STAT% CPU% MEM TIME COMMAND

1067 root 14 0892892680 R 2.8 0.6 0:00 top

1 root 0 0468468404 S 0.0 0.3 0:06 init

2 root 0 0 0 0 0 SW 0.0 0.0 0:00 kflushd

3 root 0 0 0 0 0 SW 0.0 0.0 0:00 kupdate

4 root 0 0 0 0 0 SW 0.0 0.0 0:00 kswapd

5 root -20 -20 0 0 0 SW <0.0 0.0 0:00 mdrecoveryd

Переглянути інформацію про оперативну пам'ять ви можете за допомогою команди free, а про дискову - df. Інформація про зареєстровані в системі користувачів доступна по команді w.

Зміна пріоритету процесу - команда nice

nice [-коефіцієнт зниження] команда [аргумент] Команда nice виконує вказану команду зі зниженим пріоритетом, коефіцієнт зниження вказується в діапазоні 1 .. 19 (за замовчуванням він дорівнює 10). Суперкористувач може підвищувати пріоритет команди, для цього потрібно вказати негативний коефіцієнт, наприклад - 10. Якщо вказати коефіцієнт більше 19, то він буде розглядатися як 19.

nohup - ігнорування сигналів переривання

nohup команда [аргумент] nohup виконує запуск команди в режимі ігнорування сигналів. Не ігноруються тільки сигнали SIGHUP і SIGQUIT. kill - примусове завершення процесу kill [-номер сигналу] PID де PID - ідентифікатор процесу, який можна дізнатися за допомогою команди ps.

Команди виконання процесів у фоновому режимі - jobs, fg, bg

Команда jobs виводить список процесів, які виконуються у фоновому режимі, fg - переводить процес в нормальні режим ("на передній план" - foreground), а bg - у фоновий. Запустити програму у фоновому режимі можна за допомогою конструкції <команда> &

Таблиця 1. Номери сигналів

Номер Назва Опис

01 SIGHUP Звільнення лінії (hangup).

02 SIGINT Переривання (interrupt).

03 SIGQUIT Вихід (quit).

04 SIGILL Некоректна команда (illegal instruction). Чи не встановлювати заново при перехопленні.

05 SIGTRAP трассіровочние переривання (trace trap). Чи не встановлювати заново при перехопленні.

06 SIGIOT або SIGABRT Машинна команда IOT.

07 SIGEMT Машинна команда EMT.

08 SIGFPE Виняткова ситуація при виконанні операції з числами (floating-point exception)

09 SIGKILL Знищення процесу (kill). Чи не перехоплюється і не ігнорується.

10 SIGBUS Помилка шини (bus error).

11 SIGSEGV Некоректне звернення до сегменту пам'яті (segmentation violation).

12 SIGSYS Некоректний параметр системного виклику (bad argument to system call).

13 SIGPIPE Запис в канал, з якого нікому читати (write on a pipe with no one to read it).

14 SIGALRM Будильник

15 SIGTERM Програмний сигнал завершення

16 SIGUSR1 Визначається користувачем сигнал 1

17 SIGUSR2 Визначається користувачем сигнал 2

18 SIGCLD Завершення породженого процесу (death of a child).

19 SIGPWR Помилка харчування

22 Реєстрація вибіркової події

Сигнали (точніше їх номери) описані у файлі singnal.h

Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти