Назад к вопросам
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) следует использовать только как крайнюю меру, когда процесс не реагирует на другие сигналы.