Có cách nào để google-chromebỏ thuốc, từ thiết bị đầu cuối, bên cạnh việc sử dụng killall google-chromekhông?
Tôi muốn có thể đóng nó từ một kịch bản mà không giết nó.
Có cách nào để google-chromebỏ thuốc, từ thiết bị đầu cuối, bên cạnh việc sử dụng killall google-chromekhông?
Tôi muốn có thể đóng nó từ một kịch bản mà không giết nó.
Câu trả lời:
Có lẽ wmctrlcó thể là một số trợ giúp. Bạn có thể sử dụng -ctùy chọn đóng cửa sổ một cách duyên dáng:
wmctrl -c chrome
Chuỗi chromeđược khớp với các tiêu đề cửa sổ. Lưu ý rằng cửa sổ có thể không đóng nếu một số thông báo bật lên (ví dụ: khi bạn mở nhiều tab).
wmctrl.
pkill -o chromemặc dù
Lệnh này thoát khỏi cây quy trình chrome một cách duyên dáng, trong tất cả các trình quản lý cửa sổ:
pkill --oldest chrome
hoặc nếu bạn thích:
/usr/bin/pkill --oldest --signal TERM -f chrome
Chi tiết:
SIGTERM--oldestSIGTERM15do đó giống như tín hiệu , do đó --signal TERM, hoặc bỏ qua nó SIGTERMlà tín hiệu mặc địnhwmctrl hoạt động với Unity và một số người khác nhưng nó không hoạt động với tất cả các trình quản lý cửa sổwmctrl -c đóng một cửa sổ tại một thời điểm để đóng tất cả các cửa sổ chrome, bạn sẽ cần một cái gì đó như while wmctrl -c 'Google Chrome'; do sleep 0.2; done--oldestđây không phải là một tùy chọn: sử dụng -ocác tác phẩm.
-flập luận để pkill không làm việc cho tôi. Tôi có một số quy trình khác đang chạy với quyền root có chữ chrome trong dòng lệnh của họ, vì vậy tôi chỉ bị từ chối cấp phép. Không có -f, nó hoạt động hoàn hảo mặc dù.
Bật Mac OS X, sử dụng cái này thay thế
pkill -a -i "Google Chrome"
Những gì nó làm là tìm kiếm một quy trình Google Chrome và cũng giết tất cả các quy trình mẹ của nó.
Từ hướng dẫn sử dụng pkill
-a Include process ancestors in the match list. By default, the
current pgrep or pkill process and all of its ancestors are
excluded (unless -v is used).
-i Ignore case distinctions in both the process table and the
supplied pattern.
Theo câu trả lời của @ keith-cascio , bạn có thể cố gắng giết quá trình cũ nhất thay thế. Lưu ý rằng điều này đã không làm việc cho tôi.
pkill -o -i "Google Chrome"
thử:
kill -3 <pid_of_chrome>
Điều này sẽ gửi tín hiệu "QUIT" tới chrome, tùy thuộc vào trình quản lý cửa sổ của bạn, sẽ là những gì nó thường được gửi khi được yêu cầu đóng.
killhoặc killallnơi Chrome coi đó là sự cố và yêu cầu khôi phục.
SIGQUITthường không được gửi đến các ứng dụng khi được yêu cầu đóng (Tôi không biết bất kỳ WM nào làm điều này). WM_DELETE_WINDOWlà tiêu chuẩn.
kill -15 <pid_of_chrome>đã làm những gì tôi đang tìm kiếm. Nhưng, google-chromecó nhiều pids và phải mất một vài lần cố gắng để có được cái đúng.