Hệ điều hành Linux đi kèm với một lệnh giết để kết thúc một quá 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 chạy trên 96,4% của các máy chủ, trên hành tinh.

Giết chết lệnh 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.

[ You might also like: Find Top 15 Processes by Memory Usage with ‘top’ in Batch Mode ]

Sử dụng giết chết lệnh từ / usr / bin cung cấp cho bạn một số tính năng bổ sung để giết một quy trình theo tên quy trình bằng cách sử dụng pkill.

Sử dụng lệnh Kill

Cú pháp chung cho lệnh giết Là:

# kill [signal or option] PID(s)

Cho một lệnh giết 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 quy trình. ĐĂNG KÍ là một cách ít an toàn hơn để giết một quy trình 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.

Để hủy 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 Tiến 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 là một PID được tạo cho quá trình đó.

See also  8 lệnh Linux Nslookup để khắc phục sự cố DNS (Máy chủ tên miền)

Mọi quy trình trong Linux 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ị là ‘1‘ trong hầu hết các trường hợp.

[ You might also like: All You Need To Know About Processes in Linux [Comprehensive Guide] ]

Trong đó 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 bị giết một cách vô tình. Trong đó quyết định và cho phép chính nó bị giết, trong đó giết chỉ là một yêu cầu tắt máy.

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

Để biết tất cả các quy trình và tương ứng với chúng được giao pid, 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
Đầu ra 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

[ You might also like: How to Find Top 15 Processes by Memory Usage in Linux ]

See also  Hướng dẫn Hoàn chỉnh về Lệnh “useradd” trong Linux - 15 Ví dụ Thực tế

Làm thế nào để hủy một quy trình trong Linux

Trước khi chúng tôi bước tiếp và thực hiện lệnh giết, một số điểm quan trọng cần lưu ý:

  • Một người dùng có thể giết 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ể hủy 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 cùng một chức năng là thực hiện lệnh ‘pgrep‘ chỉ huy.

# pgrep mysql
Đầu ra mẫu
3139

Để giết quá trình trên PID, sử dụng lệnh kill như hình minh họa.

kill -9 3139

Lệnh trên sẽ giết quá trình có pid=3139, ở đâu PID là một Giá trị số của quy 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ự ‘giết -9 PID‘ tương tự như ‘giết -SIGKILL PID‘ và ngược lại.

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

Bạn phải biết về tên tiến trình, trước khi giết và nhập sai tên tiến trình có thể khiến bạn gặp rắc rối.

# pkill mysqld

Giết nhiều hơn một quy 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 quy trình có quá nhiều cá thể và một số quy trình con, chúng ta có một 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.

See also  10 ví dụ về lệnh lsof trong Linux
Cú pháp:
# killall [signal or option] Process Name
Or
# pkill Process Name

Giết tất cả phiên bản mysql cùng với các quy trình con, sử dụng lệnh như sau.

# killall mysqld
OR
# 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ả cho bây giờ, từ phía 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 tiếp tục theo dõi, kết nối với Tecmint, và khỏe mạnh. Đừng quên cung cấp cho phản hồi có giá trị trong phần bình luận.

By admin

Leave a Reply