Tôi đang viết một tập lệnh bash nhỏ để mở một vài ứng dụng (một số cửa sổ chrome trong số các ứng dụng khác), chờ nhập liệu và với đầu vào chính xác sẽ đóng lại tất cả các ứng dụng đã mở.
Để chấm dứt các ứng dụng, tôi đã tìm ra hai cách khác nhau: bằng kill $PID
hoặc vớiwmctrl -c <WIN>
Trong trường hợp của tôi, có một số cửa sổ crom mở (không chỉ các cửa sổ được khởi chạy bởi tập lệnh). Tiêu đề cửa sổ của chrome thay đổi với URL được truy cập, vì vậy trong mắt tôi sử dụng wmctrl -ckhông hữu ích lắm. Ngoài ra, nếu một cửa sổ khác (ví dụ như một phiên bản của Firefox) có độ nghiêng cửa sổ tương tự, thì nó cũng sẽ bị đóng.
Điều đó dẫn tôi đến killlệnh. Nhưng tôi không thể tìm ra cách xác định PID của Cửa sổ Chrome mà tôi muốn chấm dứt.
Tôi đã thử điều này:
pid=$(ps | grep chromium | cut -d " " -f1 | head -n1)
if [ -n "$pid" ]
then
echo "...Closing Chromium"
kill -15 $pid
else
echo "...Chromium not found"
fi
nhưng nó sẽ đóng tất cả các cửa sổ Chromium.
Bất kỳ ý tưởng làm thế nào để xác định cửa sổ chrome mà tôi muốn giết?
pgrep -fmà bạn có thể sử dụng để xác định đúng quy trình / cửa sổ.