Thứ Sáu, 28 tháng 7, 2023

Cách sử dụng lệnh kill trong Linux

Trong bài này chúng ta sẽ tìm hiểu cách dùng lệnh kill trong Linux, đây là lệnh rất hữu ích được dùng để giết một quy trình hoặc một công việc gì đó ngay lập tức.

Linux là một hệ điều hành rất nhanh nhưng không phải lúc nào nó không phải là hoàn hảo. Đôi khi, một số ứng dụng có thể bắt đầu hoạt động thất thường, không phản hồi hoặc tiêu tốn nhiều tài nguyên hệ thống. Ta không thể khởi động lại những ứng dụng đó, vì Linux nhận biết rằng ứng dụng đó chưa được tắt. Giải pháp duy nhất là khởi động lại hệ thống hoặc tắt nó một cách ép buộc.

Mục lục

  • 1. Cú pháp lệnh killl trong Linux
  • 2. Các bước thực hiện lệnh kill trong Linux
  • 3. Sử dụng lệnh kill để reload các tiến trình

1. Cú pháp lệnh killl trong Linux

Lệnh kill là một build-in shell nên nó có trên hầu hết tất cả các bản phối khác nhau của Linux. Cú pháp của nó như sau:

1
kill [OPTIONS] [PID]...

Lệnh kill sẽ gửi một tín hiệu đến các tiến trình hoặc nhóm tiến trình được chỉ định (PID).

Bài viết này được đăng tại tranvanbinh.vn

Các tín hiệu được sử dụng phổ biến nhất là:

  • 1 (HUP) - Khởi động lại tién trình.
  • 9 (KILL) - Dừng tiến trình ngay lập tức.
  • 15 (TERM) - Dừng quá trình nhẹ nhàng hơn.

Để xem danh sách tất cả các tín hiệu có sẵn trên hệ thống thì hãy chạy lệnh sau:

1
kill -l

kill command linux JPG

Các tín hiệu có thể được trình bày qua ba cách khác nhau dưới đây:

  • Sử dụng số (-1 hoặc -s 1)
  • Sử dụng SIG prefix (-SIGHUP hoặc -s SIGHUP).
  • Bỏ qua SUG prefix (-HUP hoặc -s HUP)

Vậy, chúng ta có được các cách viết như sau:

1
2
3
kill -1 PID_NUMBER
kill -SIGHUP PID_NUMBER
kill -HUP PID_NUMBER

Các PID cung cấp cho lệnh kill có được xác định như sau:

  • Nếu PID lớn hơn 0, tín hiệu được gửi đến tiến trình với ID bằng PID.
  • Nếu PID bằng 0, tín hiệu được gửi đến tất cả các tiến trình trong nhóm tiến trình hiện tại. Nói cách khác, tín hiệu được gửi đến tất cả các tiến trình thuộc GID của shell đã gọi lệnh kill. Sử dụng lệnh ps -efj để xem ID nhóm tiến trình (GID).
  • Nếu PID bằng -1, tín hiệu được gửi đến tất cả các tiến trình có cùng UID khi người dùng gọi lệnh.
  • Nếu PID nhỏ hơn -1, tín hiệu được gửi đến tất cả các tiến trình trong nhóm tiến trình với GID bằng giá trị tuyệt đối của PID.

Người dùng thông thường có thể gửi tín hiệu đến tiến trình của riêng họ, nhưng không gửi tín hiệu đến quy trình của người dùng khác, trong khi người dùng root có thể gửi tín hiệu đến quy trình của người dùng khác.

2. Các bước thực hiện lệnh kill trong Linux

Để chấm dứt hoặc hủy một tiến trình bằng lệnh kill, trước tiên bạn cần tìm số ID của quy trình (PID). Bạn có thể thực hiện việc này bằng các lệnh khác nhau như toppspidof và pgrep.

Giả sử trình duyệt Firefox không phản hồi và bạn cần phải hủy tiến trình Firefox. Để tìm PID của trình duyệt, hãy sử dụng lệnh pidof:

1
pidof firefox

Lệnh này sẽ in ra các PID của trình duyệt Firefox như sau:

1
6263 6199 6142 6076

Khi ta đã biết danh sách các PID rồi thì dễ dàng chấm dứt nó bằng lệnh kill.

1
kill -9 6263 6199 6142 6076

Thay vì tìm kiếm PID và sau đó kill các tiến trình thì bạn có thể kết hợp các lệnh trên thành một:

1
kill -9 $(pidof firefox)

3. Sử dụng lệnh kill để reload các tiến trình

Một giải pháp khác để giải quyết là ta sẽ gửi tính hiệu HUB để các tiến trình sẽ reload lại.

Ví dụ: Để reload Nginx service thì bạn cần gửi tín hiệu đến tiến trình chính. ID quy trình của quy trình chính Nginx có thể được tìm thấy trong file nginx.pid, nó thường nằm trong thư mục /var/run.

Sử dụng lệnh cat để tìm PID chính:

1
cat /var/run/nginx.pid

Kết quả:

1
30251

Sau khi bạn tìm thấy PID chính, hãy reload lại Nginx bằng cách nhập:

1
sudo kill -1 30251

Lệnh trên được chạy bởi người dùng root có đặc quyền sudo.

Như vậy là chúng ta đã tìm hiểu xong cách sử dụng lệnh kill trong Linux, đây là lệnh rất hay dùng để xử lý các tiến trình / ứng dụng bị đơ hoặc nó chiếm quá nhiều tài nguyên.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master