Intern
Как да завърша процеса?
sobes.tech AI
Отговор от 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) трябва да се използва само като крайна мярка, когато процесът не реагира на други сигнали.