реклама
Бургер менюБургер меню

Программист – Работа в командной строке linux (страница 5)

18

4. Ctrl+Z — приостановить выполняющееся задание (переводит в состояние Stopped).

5. & — запуск процесса в фоне сразу:

sleep 100 & # Запустить sleep в фоне

Пример работы:

long_command # Запускаем долго выполняющуюся команду

Ctrl+Z # Приостанавливаем её

bg # Запускаем в фоне

jobs # Проверяем статус

4.4. Завершение процессов

1. kill — отправка сигналов процессу.

Основные сигналы: * SIGTERM (15) — корректное завершение (по умолчанию); * SIGKILL (9) — принудительное завершение («убивает» процесс); * SIGSTOP (19) — приостановка процесса; * SIGCONT (18) — продолжение выполнения.

Примеры:

kill 1234 # Отправить SIGTERM процессу с PID 1234

kill -9 1234 # Принудительно завершить процесс

kill -STOP 1234 # Приостановить процесс

2. pkill — завершение по имени процесса:

pkill firefox # Завершить все процессы firefox

pkill -9 python # Принудительно завершить все процессы python

3. killall — аналогично pkill, но может завершать по имени:

killall chrome

4.5. Приоритеты процессов

Приоритет (nice value) определяет, сколько процессорного времени получит процесс.

• Диапазон: от -20 (высший приоритет) до 19 (низший приоритет).

• По умолчанию процессы запускаются с приоритетом 0.

Команды:

1. nice — запуск с заданным приоритетом:

nice -n 10 long_calculation.sh # Запустить с низким приоритетом

2. renice — изменение приоритета работающего процесса:

renice 5 1234 # Установить приоритет 5 для процесса 1234

4.6. Практические упражнения

1. Запустите команду sleep 300 и приостановите её с помощью Ctrl+Z.

2. Проверьте список заданий командой jobs.

3. Запустите sleep 200 & (в фоне).

4. Снова выполните jobs и обратите внимание на статус заданий.

5. Переведите первое задание на передний план командой fg.

6. Прервите его с помощью Ctrl+C.

7. Запустите top и отсортируйте процессы по потреблению CPU (P).

8. Найдите процесс с наибольшим потреблением и запомните его PID.

9. Завершите этот процесс командой kill PID.

10. Проверьте, что процесс завершён, снова запустив top.

11. Запустите htop (если установлен) и изучите интерфейс.

12. Создайте скрипт high_cpu.sh, который в цикле выводит дату:

#!/! /bin/bash

while true; do

date

sleep 1

done

13. Запустите его с высоким приоритетом (nice -n -10 ./high_cpu.sh) и понаблюдайте в top.

14. Измените приоритет работающего процесса на 15 с помощью renice.

4.7. Дополнительные инструменты

pgrep — поиск PID по имени процесса:

pgrep firefox

strace — трассировка системных вызовов процесса:

strace -p PID

lsof — список открытых файлов процессом:

lsof -p PID

vmstat — общая статистика по системе (память, CPU, I/O):

vmstat 2 # Обновление каждые 2 секунды

Заключение

Вы освоили ключевые аспекты управления процессами в Linux: * мониторинг процессов (ps, top, htop); * управление заданиями (jobs, fg, bg); * завершение процессов (kill, pkill, killall); * настройку приоритетов (nice, renice).

Эти навыки позволят вам: * эффективно диагностировать проблемы с производительностью; * управлять ресурсами системы; * автоматизировать задачи с учётом приоритетов; * безопасно завершать зависшие процессы.

В следующей главе мы рассмотрим автоматизацию задач с помощью планировщика cron и работу с сетевыми командами в Linux.

Глава 5. Автоматизация задач с помощью cron и основы работы с сетью в Linux

Введение

Автоматизация рутинных задач и работа с сетевыми подключениями — ключевые навыки для администратора Linux. В этой главе вы освоите: * настройку планировщика задач cron; * создание и редактирование расписаний; * основы сетевых команд для диагностики и подключения; * практические сценарии автоматизации.