Sobes.tech
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) უნდა გამოიყენოს მხოლოდ როგორც ბოლო საშუალება, როდესაც სხვა სიგნალებს არ რეაგირებს.