Відмінності між версіями «Робота з процесами»
Рядок 5: | Рядок 5: | ||
Параметр Опис | Параметр Опис | ||
-a відобразити всі процеси, пов'язані з терміналом (відображаються процеси всіх користувачів) | -a відобразити всі процеси, пов'язані з терміналом (відображаються процеси всіх користувачів) | ||
+ | |||
-e відобразити всі процеси | -e відобразити всі процеси | ||
+ | |||
-t список терміналів відобразити процеси, пов'язані з терміналами | -t список терміналів відобразити процеси, пов'язані з терміналами | ||
+ | |||
-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 | ||
Рядок 22: | Рядок 33: | ||
# 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 | ||
+ | |||
1261? S 0:00 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 1280 × S 0:00 httpd-DHAVE_PHP4-DHAVE_PROXY-DHAVE_ACCESS-DHAVE_A | ||
Рядок 41: | Рядок 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 | ||
Рядок 74: | Рядок 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 |
Версія за 14:58, 6 грудня 2011
Команда 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
Для виведення інформації про конкретний процесі ми можемо скористатися командою:
- 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
Призначена для виведення інформації про процеси в реальному часі. Процеси сортуються по максимальному займаному процесорного часу, але ви можете змінити порядок сортування. Програма також повідомляє про вільні системні ресурси.
- 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