Làm thế nào để kết thúc một process trong Linux?

Làm thế nào để kết thúc một process trong Linux?

Bài viết sẽ chỉ cho bạn cách để diệt một tiến trình trong Linux. Một trong những ưu điểm chính của Linux là khả năng chấm dứt một tiến trình mà không cần phải khởi động lại máy chủ. Vo vậy chúng tôi sẽ chỉ cho bạn cách để kết thúc một tiến trình trên Linux bằng cách sử dụng lệnh kill, pkill và killall.

1. PID là gì?

Trước khi bắt đầu, chúng ta cần phải biết Process ID  (PID) là gì.

PID đại diện cho một nhận dạng số của một quá trình trong Linux. Mỗi quá trình có một PID duy nhất. Ví dụ, quá trình đầu tiên bắt đầu trong một hệ thống dựa trên Linux là quá trình init và PID của nó được đặt là “1”. Quá trình này là cha mẹ của tất cả các quy trình khác. Quá trình init không thể bị kết thúc bằng cách sử dụng các lệnh kill và điều này đảm bảo rằng nó không phải là tình cờ bị kết thúc.

Bây giờ, để tìm ra PID của mỗi quá trình chạy trên máy chủ, chúng ta có thể thực hiện lệnh sau:

ps -A

Điều này cho chúng ta danh sách tất cả quá trình chạy và các PID tương ứng của chúng.

Nếu chúng ta muốn tìm PID của một quá trình cụ thể thay vào đó, chúng ta có thể sử dụng lệnh pidof và tên của tiến trình. Ví dụ, để tìm ra PID của quá trình mysql của chúng tôi, chúng ta có thể chạy lệnh sau:

pidof mysql

Để biết thông tin chi tiết hơn, chúng ta có thể sử dụng lệnh ps aux cùng với grep :

ps aux | grep mysql

Bây giờ, chúng ta biết PID là gì và làm thế nào để tìm thấy PID của một quá trình cụ thể chúng ta có thể chuyển sang phần tiếp theo và tìm hiểu làm thế nào để giết nó.

2. Kết thúc một tiến trình với lệnh kill trong Linux

Có vài quy tắc quan trọng mà chúng ta cần biết trước khi bắt đầu sử dụng lệnh kill.

  • Bạn chỉ có thể kết thúc các quy trình của riêng mình do tài khoản người dùng của bạn sở hữu
  • Bạn không thể kết thúc các quy trình của người dùng khác
  • Bạn không thể kết thúc các tiến trình hệ thống (trừ khi bạn là người dùng gốc root)
  • Người dùng root có thể kết thúc quá trình của bất kỳ người dùng nào khác và bất kỳ quá trình hệ thống nào

Khi chúng ta kết thúc một tiến trình với lệnh kill, chúng ta thực sự gửi một tín hiệu cụ thể tới PID mà chúng ta muốn kết thúc. Các tín hiệu sau đây được sử dụng bởi lệnh kill:

1 = Hung up
9 = Kill 
15 = Terminate

Tín hiệu hung up hiếm khi được sử dụng. Hầu hết chúng ta sử dụng tín hiệu kill và nếu nó không hoạt động thì chúng ta có thể sử dụng tín hiệu terminate.

Vì vậy, một khi chúng ta tìm thấy PID của quá trình chúng ta muốn kết thúc, bằng cách sử dụng một trong những phương pháp chúng tôi mô tả trước đây, chúng ta có thể sử dụng lệnh kill -9 PID để giết quá trình với PID cụ thể.

Ví dụ, nếu PID là 6738, thì chúng ta có thể sử dụng lệnh sau:

kill -9 6738

3. Kết thúc một quá trình với lệnh pkill trong Linux

Nếu bạn muốn sử dụng tên của quá trình thay vì PID của nó để kết thúc nó, sau đó bạn có thể sử dụng lệnh pkill. Ví dụ, nếu quá trình chúng tôi muốn kết thúc có tên là mysql, sau đó chúng tôi có thể sử dụng lệnh sau đây để kết thúc nó:

pkill mysql

4. Kết thúc một quá trình bằng lệnh killall trong Linux

Hai lệnh trước đó được sử dụng để chỉ kết thúc một quy trình cụ thể. Nhưng, nếu chúng ta muốn ết thúc một tiến trình cùng với tất cả các tiến trình con của mình thì chúng ta có thể sử dụng lệnh killall :

killall mysql

Trong ví dụ này, chúng ta sẽ kết thúc quá trình mysql và tất cả các quá trình con của nó.

Đây là những ví dụ phổ biến nhất để kết thúc một tiến trình trong Linux.

PS . Nếu bạn thích bài viết này về cách kết thúc một tiến trình trong Linux, hãy chia sẻ nó với bạn bè của bạn trên các mạng xã hội bằng cách sử dụng các nút ở bên trái hoặc chỉ để lại một trả lời dưới đây. Cảm ơn bạn.

Author Image
Hoàng Tùng

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *