Giới thiệu
Trong lab này, bạn sẽ học cách sử dụng lệnh killall
trong Linux để kết thúc các tiến trình theo tên hoặc người dùng. Lệnh killall
là một công cụ mạnh mẽ để quản lý tiến trình, cho phép bạn nhanh chóng và hiệu quả kết thúc nhiều tiến trình cùng một lúc.
Bạn sẽ hiểu rõ cách sử dụng cơ bản của lệnh killall
, bao gồm cách kết thúc các tiến trình theo tên và theo người dùng. Sau đó, bạn sẽ khám phá các ví dụ thực tế về việc sử dụng lệnh killall
để quản lý các tiến trình đang chạy trên hệ thống của bạn. Lab này sẽ cung cấp cho bạn kiến thức và kỹ năng để kiểm soát và quản lý hiệu quả các tiến trình trên hệ điều hành dựa trên Linux của bạn.
Tìm hiểu lệnh killall
Trong bước này, bạn sẽ tìm hiểu về lệnh killall
trong Linux, cho phép bạn kết thúc các tiến trình theo tên. Lệnh killall
là một công cụ mạnh mẽ để quản lý tiến trình, cho phép bạn nhanh chóng và hiệu quả kết thúc nhiều tiến trình cùng một lúc.
Đầu tiên, hãy khám phá cách sử dụng cơ bản của lệnh killall
:
sudo killall process_name
Lệnh trên sẽ kết thúc tất cả các tiến trình với process_name
được chỉ định. Ví dụ: để kết thúc tất cả các phiên bản của tiến trình firefox
, bạn có thể chạy:
sudo killall firefox
Ví dụ đầu ra:
firefox: no process found
Trong ví dụ này, vì không có tiến trình firefox
nào đang chạy, lệnh đã trả về thông báo "no process found".
Lệnh killall
cũng hỗ trợ nhiều tùy chọn để tùy chỉnh hành vi của nó. Một số tùy chọn phổ biến bao gồm:
-i
: Hỏi trước khi kết thúc mỗi tiến trình-q
: Chế độ im lặng, không xuất bất kỳ thông báo lỗi nào-u
: Kết thúc các tiến trình thuộc sở hữu của người dùng được chỉ định-s
: Gửi tín hiệu được chỉ định thay vì SIGTERM (mặc định)
Ví dụ: để kết thúc tất cả các tiến trình thuộc sở hữu của người dùng labex
, bạn có thể chạy:
sudo killall -u labex
Ví dụ đầu ra:
[sudo] password for labex:
Lệnh killall
là một công cụ mạnh mẽ để quản lý tiến trình, cho phép bạn kết thúc nhiều tiến trình theo tên hoặc người dùng. Trong bước tiếp theo, bạn sẽ học cách sử dụng lệnh killall
trong các tình huống thực tế hơn.
Kết thúc tiến trình theo tên
Trong bước này, bạn sẽ học cách sử dụng lệnh killall
để kết thúc các tiến trình theo tên của chúng.
Đầu tiên, hãy bắt đầu một vài tiến trình nền mà chúng ta có thể sử dụng cho ví dụ này:
sleep 1000 &
sleep 2000 &
sleep 3000 &
Bây giờ, bạn có thể sử dụng lệnh killall
để kết thúc các tiến trình này theo tên:
sudo killall sleep
Ví dụ đầu ra:
sleep: no process found
Ôi, có vẻ như các tiến trình sleep
đã kết thúc. Hãy bắt đầu lại chúng và thử kết thúc chúng:
sleep 1000 &
sleep 2000 &
sleep 3000 &
sudo killall sleep
Ví dụ đầu ra:
sleep: no process found
Hmm, có vẻ như lệnh killall
không hoạt động như mong đợi. Điều này là do lệnh killall
tìm kiếm các tên tiến trình chính xác và trong trường hợp này, tên tiến trình không chỉ là "sleep", mà còn bao gồm cả các đối số của tiến trình (ví dụ: "sleep 1000").
Để kết thúc các tiến trình này, chúng ta có thể sử dụng ID tiến trình (PID) thay thế:
pids=$(pgrep sleep)
sudo kill $pids
Ví dụ đầu ra:
Tuyệt vời! Các tiến trình sleep
đã bị kết thúc.
Lệnh killall
là một công cụ mạnh mẽ, nhưng điều quan trọng là phải hiểu rằng nó tìm kiếm các tên tiến trình chính xác. Nếu tên tiến trình bao gồm các đối số, bạn có thể cần sử dụng các phương pháp thay thế, chẳng hạn như pgrep
và kill
, để kết thúc các tiến trình.
Kết thúc tiến trình theo người dùng
Trong bước này, bạn sẽ học cách sử dụng lệnh killall
để kết thúc các tiến trình dựa trên người dùng sở hữu chúng.
Đầu tiên, hãy bắt đầu một số tiến trình nền với tư cách là người dùng labex
:
sudo -u labex sleep 1000 &
sudo -u labex sleep 2000 &
sudo -u labex sleep 3000 &
Bây giờ, bạn có thể sử dụng lệnh killall
với tùy chọn -u
để kết thúc tất cả các tiến trình thuộc sở hữu của người dùng labex
:
sudo killall -u labex
Ví dụ đầu ra:
sleep: no process found
Ôi, có vẻ như các tiến trình sleep
đã kết thúc. Hãy bắt đầu lại chúng và thử kết thúc chúng:
sudo -u labex sleep 1000 &
sudo -u labex sleep 2000 &
sudo -u labex sleep 3000 &
sudo killall -u labex
Ví dụ đầu ra:
sleep: no process found
Tuyệt vời! Lệnh killall
với tùy chọn -u
đã kết thúc thành công tất cả các tiến trình thuộc sở hữu của người dùng labex
.
Lệnh killall
có thể là một công cụ mạnh mẽ để quản lý các tiến trình dựa trên người dùng sở hữu chúng. Điều này đặc biệt hữu ích trong các tình huống mà bạn cần kết thúc tất cả các tiến trình thuộc về một người dùng cụ thể, chẳng hạn như khi tài khoản của người dùng đang bị hủy kích hoạt hoặc người dùng không còn được phép chạy một số tiến trình nhất định.
Tóm tắt
Trong lab này, bạn đã học về lệnh killall
trong Linux, cho phép bạn kết thúc các tiến trình theo tên. Bạn đã khám phá cách sử dụng cơ bản của lệnh killall
và cách kết thúc các tiến trình theo tên. Bạn cũng đã học cách kết thúc các tiến trình thuộc sở hữu của một người dùng cụ thể và cách tùy chỉnh hành vi của lệnh killall
bằng cách sử dụng các tùy chọn khác nhau. Cuối cùng, bạn đã thực hành sử dụng lệnh killall
để kết thúc nhiều tiến trình theo tên.