Download app

Quét mã QR để tải về ứng dụng

QR code

Cách hủy bỏ quy trình Linux bằng cách sử dụng Kill, Pkill và Killall

25/08/2021, 11:17 am
1,967

Hệ điều hành Linux đi kèm với lệnh hủy để chấm dứt một quy trình. Lệnh này giúp bạn có thể tiếp tục chạy máy chủ mà không cần phải khởi động lại sau một thay đổi/cập nhật lớn. Đây là sức mạnh tuyệt vời của Linux và đây là một trong những lý do, tại sao Linux đang chạy trên 96,4% máy chủ trên hành tinh.

Lệnh Kill gửi một tín hiệu, một tín hiệu được chỉ định đến một tiến trình hiện đang chạy. Lệnh Kill có thể được thực thi theo một số cách, trực tiếp hoặc từ một tập lệnh shell.

Sử dụng lệnh Kill từ /usr/bin cung cấp cho bạn một số tính năng bổ sung để hủy một quy trình theo tên quy trình bằng Pkill.

Hủy bỏ cách sử dụng lệnh

Cú pháp chung cho lệnh Kill là:

# kill [signal or option] PID(s)

Đối với một lệnh Kill một tên tín hiệu có thể là:

Signal Name Signal Value Behaviour

SIGHUP       1 Hangup

SIGKILL       9 Kill Signal

SIGTERM      15         Terminate

Rõ ràng từ hành vi ở trên, SIGTERM là cách mặc định và an toàn nhất để hủy một tiến trình. SIGHUP là một cách diệt quy trình kém an toàn hơn so với SIGTERM. SIGKILL là cách không an toàn nhất trong số ba cách trên, để giết một quá trình kết thúc một quá trình mà không lưu.

Để kết thúc một quy trình, chúng ta cần biết ID quy trình của một quy trình. Một quá trình là một thể hiện của một chương trình. Mỗi khi một chương trình bắt đầu, tự động một PID duy nhất được tạo cho quá trình đó.

Mọi quy trình trong Linux đều có một PID. Quá trình đầu tiên bắt đầu khi Hệ thống Linux được khởi động là quá trình init, do đó nó được gán giá trị '1' trong hầu hết các trường hợp.

Init là quy trình chính và không thể bị hủy theo cách này, điều này đảm bảo rằng quy trình chính không vô tình bị hủy. Init quyết định và tự cho phép mình bị hủy, nơi hủy chỉ đơn thuần là yêu cầu tắt máy.

Liệt kê tất cả các quá trình Linux đang chạy

Để biết tất cả các quá trình và được chỉ định tương ứng với PID của chúng, hãy chạy lệnh ps sau.

# ps -A

Đầu ra mẫu

PID TTY          TIME CMD

    1 ?        00:00:01 init

    2 ?        00:00:00 kthreadd

    3 ?        00:00:00 migration/0

    4 ?        00:00:00 ksoftirqd/0

    5 ?        00:00:00 migration/0

    6 ?        00:00:00 watchdog/0

    7 ?        00:00:01 events/0

    8 ?        00:00:00 cgroup

    9 ?        00:00:00 khelper

   10 ?        00:00:00 netns

   11 ?        00:00:00 async/mgr

   12 ?        00:00:00 pm

   13 ?        00:00:00 sync_supers

   14 ?        00:00:00 bdi-default

   15 ?        00:00:00 kintegrityd/0

   16 ?        00:00:00 kblockd/0

   17 ?        00:00:00 kacpid

   18 ?        00:00:00 kacpi_notify

   19 ?        00:00:00 kacpi_hotplug

   20 ?        00:00:00 ata/0

   21 ?        00:00:00 ata_aux

   22 ?        00:00:00 ksuspend_usbd

Làm thế nào về Tùy chỉnh đầu ra ở trên bằng cách sử dụng cú pháp là 'quá trình pidof'.

# pidof mysqld

Kết quả mẫu

1684

Một cách khác để đạt được mục tiêu trên là làm theo cú pháp dưới đây.

# ps aux | grep mysqld

Đầu ra mẫu

root      1582  0.0  0.0   5116  1408 ?        S    09:49   0:00 

/bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql 

--socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid 

--basedir=/usr --user=mysql

mysql     1684  0.1  0.5 136884 21844 ?        Sl   09:49   1:09 

/usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql 

--log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid 

--socket=/var/lib/mysql/mysql.sock

root     20844  0.0  0.0   4356   740 pts/0    S+   21:39   

0:00 grep mysqld

Cách hủy quy trình trong Linux

Trước khi chúng ta thực hiện lệnh Kill, một số điểm quan trọng cần lưu ý:

Người dùng có thể hủy tất cả các quy trình của mình.

Người dùng không thể giết tiến trình của người dùng khác.

Người dùng không thể giết các quy trình mà Hệ thống đang sử dụng.

Người dùng root có thể giết tiến trình cấp hệ thống và quy trình của bất kỳ người dùng nào.

Một cách khác để thực hiện chức năng tương tự là thực hiện lệnh 'pgrep'.

# pgrep mysql

Đầu ra mẫu

3139

Để loại bỏ quá trình trên của PID, hãy sử dụng lệnh Kill như được hiển thị.

kill -9 3139

Lệnh trên sẽ hủy quá trình có pid=3139, trong đó PID là giá trị số của quá trình.

Một cách khác để thực hiện cùng một chức năng có thể được viết lại thành.

# kill -SIGTERM 3139

Tương tự 'kill -9 PID' tương tự như 'kill -SIGKILL PID' và ngược lại.

Cách hủy một tiến trình trong Linux bằng cách sử dụng tên tiến trình

Bạn phải biết về tên tiến trình, trước khi hủy và nhập sai tên tiến trình có thể khiến bạn khó chịu.

# pkill mysqld

Hủy nhiều quá trình cùng một lúc

# kill PID1 PID2 PID3

or

# kill -9 PID1 PID2 PID3

or

# kill -SIGKILL PID1 PID2 PID3

Điều gì xảy ra nếu một quá trình có quá nhiều cá thể và một số quá trình con, chúng ta có lệnh 'Killall' hoặc Pkill. Hai lệnh này là các lệnh duy nhất của họ này, lấy tên tiến trình làm đối số thay cho số tiến trình.

Cú pháp

# killall [signal or option] Process Name

Hoặc

# pkill Process Name

Để loại bỏ tất cả các cá thể MySQL cùng với các process con, hãy sử dụng lệnh như sau.

# killall mysqld

HOẶC

# pkill mysqld

Bạn luôn có thể xác minh trạng thái của quá trình nếu nó đang chạy hay không, bằng cách sử dụng bất kỳ lệnh nào dưới đây.

# service mysql status

OR

# systemctl status mysql

# pgrep mysql

# ps -aux | grep mysql

Đó là tất cả tất cả những gì tôi biết ở thời điểm hiện tại. Tôi sẽ sớm quay lại đây với một chủ đề thú vị và thông tin khác. Cho đến khi đó, hãy theo dõi, kết nối với Tecmint. Đừng quên đưa ra phản hồi có giá trị của bạn trong phần bình luận.

+ Fanpage: https://www.facebook.com/nhanhoacom

+ Chỉ đường: https://g.page/nhanhoacom

+ Chương trình khuyến mãi mới nhất: https://nhanhoa.com/khuyen-mai.html

————————————————————

CÔNG TY TNHH PHẦN MỀM NHÂN HÒA

https://nhanhoa.com

Hotline: 1900 6680

Trụ sở chính: Tầng 4 - Tòa nhà 97-99 Láng Hạ, Đống Đa, Hà Nội

Tel: (024) 7308 6680 – Email: sales@nhanhoa.com

Chi nhánh TP. Hồ Chí Minh: 270 Cao Thắng (nối dài), Phường 12, Quận 10, Tp.HCM

Tel: (028) 7308 6680 – Email: hcmsales@nhanhoa.com

Chi nhánh Vinh - Nghệ An: Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An

Tel: 0915221384 – Email: contact@nhanhoa.com

Bài viết liên quan
20/11/2024
Các fan cứng của Nhân Hòa đã biết Chương trình Black Friday 2024 sẽ có mức ưu đãi khủng là bao nhiêu % và áp dụng cho những...
19/11/2024
Đừng để website của bạn bị "tắt đèn" vì hết hạn tên miền! Hãy chủ động gia hạn tên miền để đảm bảo sự liên...
16/11/2024
Không phải bàn cãi việc WordPress đang là một trong những nền tảng hàng đầu trong việc xây dựng website hiện nay. Và giải...
Chuyên nghiệp và tận tình
Hỗ Trợ Trực Tuyến 24/7
Đội ngũ chuyên gia giúp xử lý vấn đề kỹ thuật để website của bạn luôn hoạt động tốt và chạy nhanh. Bất kỳ lúc nào.
Kết nối với Nhân Hoà

Map Tầng 4 - Toà nhà 97 - 99 Láng Hạ, Quận Đống Đa, Thành Phố Hà Nội

Phone Điện thoại: 1900 6680 - (024) 7308 6680

Mail Mail: sales@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Map 927/1 CMT8, Phường 7, Quận Tân Bình, Thành phố Hồ Chí Minh

Phone Điện thoại: 1900 6680 - (028) 7308 6680

Mail Mail: hcmsales@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Map Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An

Phone Điện thoại: 1900 6680 - (024) 7308 6680 - nhánh 6

Mail Mail: contact@nhanhoa.com

Hotline Phản ánh chất lượng dịch vụ: 091 140 8966

Kết nối với Nhân Hoà
Gọi lại cho tôi
Gọi miễn phí
Gọi miễn phí
×
Thông báo

Đăng nhập thành công!