Giết tất cả các phiên bản của Chrome trên dòng lệnh?


37

Trong một số trường hợp, việc hủy một tab / quy trình duy nhất không thực hiện được và tôi cần phải đóng hoàn toàn Chrome. Vì Chrome có nhiều quy trình, làm cách nào tôi có thể đóng tất cả chúng cùng một lúc?

Tôi biết điều đó...

pgrep chrometrả lại tất cả các pids. Thủ thuật nào cho phép tôi đóng tất cả chúng bằng cách cho chúng vào lệnh khác hoặc hợp nhất chúng vào tệp CSV hoặc một cái gì đó?


3
Vì có ít nhất ba câu trả lời ở đây không cần thiết phải làm kill -9, đây là ba tài liệu tham khảo thảo luận về những lý do nên là lựa chọn cuối cùng của bạn: Khi nào tôi nên sử dụng kill -9 , kill -9sử dụng kill -9 vô dụng .
Tạm dừng cho đến khi có thông báo mới.

1
Câu hỏi tương tự trong trang web U / Linux: unix.stackexchange.com/q 432101/6272
AlikElzin-kilaka 6/12/2016

Câu trả lời rõ ràng nhất thực sự là câu hỏi từ các câu hỏi trên các trang web khác, như được lưu ý dưới đây, vì nó chỉ ra quá trình nào sẽ bị giết bởi dấu thời gian lâu đời nhất:pkill --oldest chrome
nealmcb

Câu trả lời:


55

Hãy thử sử dụng pkill (1) .

pkill chrome


chỉ cần lưu ý rằng pkill có thể không có trên tất cả các hệ thống, nhưng nếu bạn có pgrep, nhiều khả năng pkill cũng tồn tại.
kSiR

2
Đối với tôi đây là trường hợp nhạy cảm, tôi cần phải viếtpkill Chrome
Liron Yahdav

1
Không làm việc ngã ba cho tôi. Sử dụng pkill chromeNó không đóng quá trình chrome chính. Nó đóng tất cả các quy trình nội bộ gây ra sự cố trên tất cả các tiện ích mở rộng. Ngoài ra, nó khiến một số cửa sổ không mở được trong lần khởi chạy tiếp theo, gây mất trạng thái :(
AlikElzin-kilaka

2
@ AlikElzin-kilaka - Bạn có thể cố gắng giết một cách rõ ràng quy trình Chrome lâu đời nhất bằng một cái gì đó nhưpkill --oldest chrome
rinogo

13
ps aux | grep chrome | awk ' { print $2 } ' | xargs kill -9

hoặc là

pgrep chrome | xargs kill -9

hoặc là

ps aux | awk '/chrome/ { print $2 } ' | xargs kill -9

Cái sau thì "thanh lịch" hơn vì nó sẽ không lấy pid thực tế cho "grep chrome" trong danh sách ps của nó

:-)


Có bất kỳ lý do để sử dụng ps ... | thay vì pgrep, thậm chí giả sử bạn không muốn sử dụng pkill?
Cascabel

3
Nó cũng luôn luôn lịch sự khi bắt đầu với SIGTERM trước khi leo thang lên SIGKILL.
Cascabel

không thực sự, chỉ có lý do tôi đã ném tùy chọn ps ra là do rất nhiều hệ thống của tôi là xương trần có nghĩa là chúng tôi không có những thứ như pkill pgrep
kSiR

Tôi đồng ý, nhưng người ta chỉ yêu cầu giết: -O s / -9 / -1 / g
kSiR

6

Một số hệ thống cũng có thể có các chương trình hữu ích như killallpidof(thực sự được cung cấp bởi Hệ thống V killall5):

killall chrome
kill -9 `pidof chrome`

Cả hai điều này sẽ thực hiện những gì bạn đang yêu cầu.


1
Bạn không nên sử dụng -9ngoại trừ như là một phương sách cuối cùng. Làm kill PIDtrước đi.
Tạm dừng cho đến khi có thông báo mới.

killallcũng hỗ trợ tính không nhạy cảm của trường hợp, ví dụ: killall --ignore-case ChRomEsẽ giết tất cả các quy trình Chrome. Tùy chọn --ignore-casecũng có thể được rút ngắn thành -I. Thật không may, pkillkhông hỗ trợ tính không phân biệt chữ hoa chữ thường - ít nhất là trên các hệ thống Linux mà tôi đã thử (nhưng nó hỗ trợ -itính không phân biệt chữ hoa chữ thường trên MacOS).
sự không có

1

Bạn thực sự chỉ nên sử dụng pkillnhư jschmier gợi ý, nhưng nếu bạn khăng khăng với pgrep, chỉ cần sử dụng thay thế lệnh:

kill $(pgrep chrome)

sẽ không kill pgrep chrome`` cũng hoạt động;)
kSiR

@kSiR: [trễ một tháng] có, nhưng $(...)là một thói quen tuyệt vời để bạn có thể lồng vào nhau khi bạn cần và lật giữa các dấu phân cách phù hợp trong trình soạn thảo của bạn.
Cascabel

1

Lệnh dễ nhất là lệnh này:

sudo killall chrome

Điều này sẽ, với quyền quản trị, sẽ giết tất cả các quy trình có chrometrong tên của chúng.

Xem man killallđể biết thêm thông tin ...


3
Bạn có thể thêm một chút giải thích về cách câu trả lời của bạn hoạt động?
nhinkle


0

Bạn cũng có thể thử một cái gì đó như thế này:

ps -C chrome |cut -f 1 -d' ' | xargs kill

Bạn không nên sử dụng -9 ngoại trừ như là phương sách cuối cùng. Làm kill PIDtrước đi.
Tạm dừng cho đến khi có thông báo mới.

điểm tốt. Tôi cập nhật câu trả lời của tôi.
Nathan Fellman

Không cần đường ống khác đi qua cut; pscó thể tự làm : ps -o pid= -C chrome | xargs kill.
musiphil

Và đó là một thói quen tốt để đưa -rvào xargs: ps -o pid= -C chrome | xargs -r kill.
musiphil

@musiphil: -r là gì?
Nathan Fellman

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.