Відмінності між версіями «Робота з процесами»

Матеріал з Wiki TNEU
Перейти до: навігація, пошук
м (Захист на Робота з процесами встановлено (‎[edit=sysop] (безстроково) ‎[move=sysop] (безстроково)))
 
(2 проміжні версії одного користувача не показані)
Рядок 12: Рядок 12:
 
-u ідентифікатори користувачів відобразити процеси, пов'язані з даними ідентифікаторами
 
-u ідентифікатори користувачів відобразити процеси, пов'язані з даними ідентифікаторами
  
-g ідентифікатори груп відобразити процеси, пов'язані з даними ідентифікаторами груп
+
-g ідентифікатори груп відобразити процеси, пов'язані з даними ідентифікаторами груп  
+
 
 
-x відобразити всі процеси, не пов'язані з терміналом
 
-x відобразити всі процеси, не пов'язані з терміналом
  
 
Наприклад, після введення команди ps-a ви побачите приблизно наступне:  
 
Наприклад, після введення команди ps-a ви побачите приблизно наступне:  
 +
 
PID TTY TIME CMD  
 
PID TTY TIME CMD  
 +
 
1007 tty1 00:00:00 bash
 
1007 tty1 00:00:00 bash
 
   
 
   
1036 tty2 00:00:00 bash
+
1036 tty2 00:00:00 bash  
+
 
 
1424 tty1 00:00:02 mc  
 
1424 tty1 00:00:02 mc  
  
1447 pts / 0 00:00:02 mpg123
+
1447 pts / 0 00:00:02 mpg123  
+
 
 
2309 tty2 00:00:00 ps  
 
2309 tty2 00:00:00 ps  
  
 
+
Для виведення інформації про конкретний процесі ми можемо скористатися командою:  
Для виведення інформації про конкретний процесі ми можемо скористатися командою:
+
+
 
# ps-ax | grep httpd  
 
# ps-ax | grep httpd  
 
698? S 0:01 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A  
 
698? S 0:01 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A  
Рядок 63: Рядок 63:
  
 
# Top  
 
# Top  
 +
 
7:49 pm up 5 min, 2 users, load average: 0.03, 0.20, 0.11  
 
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  
 
56 processes: 55 sleeping, 1 running, 0 zombie, 0 stopped  
 +
 
CPU states: 7.6% user, 9.8% system, 0.0% nice, 82.5% idle  
 
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  
 
Mem: 130660K av, 94652K used, 36008K free, 0K shrd, 5220K buff  
 +
 
Swap: 72256K av, 0K used, 72256K free 60704K cached  
 
Swap: 72256K av, 0K used, 72256K free 60704K cached  
 +
 
PID USER PRI NI SIZE RSS SHARE STAT% CPU% MEM TIME COMMAND  
 
PID USER PRI NI SIZE RSS SHARE STAT% CPU% MEM TIME COMMAND  
 +
 
1067 root 14 0892892680 R 2.8 0.6 0:00 top  
 
1067 root 14 0892892680 R 2.8 0.6 0:00 top  
 +
 
1 root 0 0468468404 S 0.0 0.3 0:06 init  
 
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  
 
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  
+
 
 +
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  
 
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  
 
5 root -20 -20 0 0 0 SW <0.0 0.0 0:00 mdrecoveryd  
  
Рядок 96: Рядок 108:
  
 
Таблиця 1. Номери сигналів  
 
Таблиця 1. Номери сигналів  
 +
 
Номер Назва Опис  
 
Номер Назва Опис  
 +
 
01 SIGHUP Звільнення лінії (hangup).
 
01 SIGHUP Звільнення лінії (hangup).
 +
 
02 SIGINT Переривання (interrupt).
 
02 SIGINT Переривання (interrupt).
 +
 
03 SIGQUIT Вихід (quit).
 
03 SIGQUIT Вихід (quit).
 +
 
04 SIGILL Некоректна команда (illegal instruction). Чи не встановлювати заново при перехопленні.
 
04 SIGILL Некоректна команда (illegal instruction). Чи не встановлювати заново при перехопленні.
 +
 
05 SIGTRAP трассіровочние переривання (trace trap). Чи не встановлювати заново при перехопленні.
 
05 SIGTRAP трассіровочние переривання (trace trap). Чи не встановлювати заново при перехопленні.
 +
 
06 SIGIOT або SIGABRT Машинна команда IOT.
 
06 SIGIOT або SIGABRT Машинна команда IOT.
 +
 
07 SIGEMT Машинна команда EMT.
 
07 SIGEMT Машинна команда EMT.
 +
 
08 SIGFPE Виняткова ситуація при виконанні операції з числами (floating-point exception)
 
08 SIGFPE Виняткова ситуація при виконанні операції з числами (floating-point exception)
 +
 
09 SIGKILL Знищення процесу (kill). Чи не перехоплюється і не ігнорується.
 
09 SIGKILL Знищення процесу (kill). Чи не перехоплюється і не ігнорується.
 +
 
10 SIGBUS Помилка шини (bus error).
 
10 SIGBUS Помилка шини (bus error).
 +
 
11 SIGSEGV Некоректне звернення до сегменту пам'яті (segmentation violation).
 
11 SIGSEGV Некоректне звернення до сегменту пам'яті (segmentation violation).
 +
 
12 SIGSYS Некоректний параметр системного виклику (bad argument to system call).
 
12 SIGSYS Некоректний параметр системного виклику (bad argument to system call).
 +
 
13 SIGPIPE Запис в канал, з якого нікому читати (write on a pipe with no one to read it).
 
13 SIGPIPE Запис в канал, з якого нікому читати (write on a pipe with no one to read it).
 +
 
14 SIGALRM Будильник
 
14 SIGALRM Будильник
 +
 
15 SIGTERM Програмний сигнал завершення
 
15 SIGTERM Програмний сигнал завершення
 +
 
16 SIGUSR1 Визначається користувачем сигнал 1
 
16 SIGUSR1 Визначається користувачем сигнал 1
 +
 
17 SIGUSR2 Визначається користувачем сигнал 2
 
17 SIGUSR2 Визначається користувачем сигнал 2
 +
 
18 SIGCLD Завершення породженого процесу (death of a child).
 
18 SIGCLD Завершення породженого процесу (death of a child).
 +
 
19 SIGPWR Помилка харчування
 
19 SIGPWR Помилка харчування
 +
 
22 Реєстрація вибіркової події
 
22 Реєстрація вибіркової події
  
 
Сигнали (точніше їх номери) описані у файлі singnal.h
 
Сигнали (точніше їх номери) описані у файлі singnal.h

Поточна версія на 23:18, 20 вересня 2012

Команда 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

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

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