Назад к вопросам
Intern
71
questionbank

Как завершить процесс?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Для завершения процесса в Linux можно использовать команды kill, pkill или killall.

1. Использование kill:

  • Завершает процесс по его Process ID (PID).
  • Требует знать PID процесса.
  • Сигналы:
    • SIGTERM (по умолчанию, 15): Мягкое завершение, позволяет процессу корректно завершиться.
    • SIGKILL (9): Немедленное и принудительное завершение, процесс не может игнорировать этот сигнал.
# узнать PID процесса
ps aux | grep <имя_процесса>

# отправить сигнал SIGTERM (по умолчанию)
kill <PID>

# отправить сигнал SIGKILL
kill -9 <PID>

2. Использование pkill:

  • Завершает процессы по их имени или другим атрибутам.
  • Не требует знания PID.
  • Поддерживает использование паттернов.
# завершить все процессы с именем 'nginx'
pkill nginx

# завершить все процессы, содержащие в имени 'myapp' (с учетом регистра)
pkill -i myapp

# отправить сигнал SIGKILL процессам с именем 'firefox'
pkill -9 firefox

3. Использование killall:

  • Завершает процессы только по их точному имени.
  • Не поддерживает использование сложных паттернов, в отличие от pkill.
# завершить все процессы с точным именем 'apache2'
killall apache2

# отправить сигнал SIGKILL процессам с точным именем 'mysqld'
killall -9 mysqld

Выбор команды:

Команда Метод завершения Требует PID Поддержка паттернов
kill По PID Да Нет
pkill По имени/атрибутам Нет Да
killall По точному имени Нет Нет

В большинстве случаев рекомендуется сначала попытаться завершить процесс с помощью SIGTERM (kill <PID>, pkill <имя>), чтобы дать ему возможность сохранить данные и корректно завершиться. SIGKILL (kill -9, pkill -9, killall -9) следует использовать только как крайнюю меру, когда процесс не реагирует на другие сигналы.