Відмінності між версіями «Робота з процесами»
Donserg (Обговорення • внесок) м (Захист на Робота з процесами встановлено ([edit=sysop] (безстроково) [move=sysop] (безстроково))) |
Поточна версія на 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
Для виведення інформації про конкретний процесі ми можемо скористатися командою:
- 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