Có cách nào để google-chrome
bỏ thuốc, từ thiết bị đầu cuối, bên cạnh việc sử dụng killall google-chrome
khô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-chrome
bỏ thuốc, từ thiết bị đầu cuối, bên cạnh việc sử dụng killall google-chrome
khô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ẽ wmctrl
có thể là một số trợ giúp. Bạn có thể sử dụng -c
tù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 chrome
mặ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
--oldest
SIGTERM
15
do đó giống như tín hiệu , do đó --signal TERM
, hoặc bỏ qua nó SIGTERM
là 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 -o
các tác phẩm.
-f
lậ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.
kill
hoặc killall
nơi Chrome coi đó là sự cố và yêu cầu khôi phục.
SIGQUIT
thườ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_WINDOW
là tiêu chuẩn.
kill -15 <pid_of_chrome>
đã làm những gì tôi đang tìm kiếm. Nhưng, google-chrome
có nhiều pids và phải mất một vài lần cố gắng để có được cái đúng.