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

Матеріал з Wiki TNEU
Версія від 14:51, 6 грудня 2011; 80.243.144.2 (Обговорення)

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

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

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

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