ออกจาก Google Chrome จากเทอร์มินัล


28

มีวิธีที่จะทำให้google-chromeออกจากขั้วนอกเหนือจากการใช้งานkillall google-chromeหรือไม่?
ฉันต้องการที่จะปิดมันจากสคริปต์โดยไม่ฆ่ามัน


2
เกิดอะไรขึ้นกับการฆ่า?
Zoredache

1
@Zoredache นั่นเป็นผลให้เกิดพฤติกรรมที่แตกต่างจากการออกไปและ Chrome ใช้กระบวนการหลายกระบวนการโดยหนึ่งในนั้น (แซนด์บ็อกซ์) เป็นรูตของ setuid
Gilles 'หยุดความชั่วร้าย'

คำตอบ:


12

อาจwmctrlช่วยได้บ้าง คุณสามารถใช้-cตัวเลือกที่ปิดหน้าต่างอย่างสง่างาม:

wmctrl -c chrome

สตริงchromeถูกจับคู่กับชื่อหน้าต่าง โปรดทราบว่าหน้าต่างอาจไม่ปิดหากมีข้อความปรากฏขึ้น (เช่นเมื่อคุณเปิดหลายแท็บ)


1
ตัวเลือกนี้จะทำงานสมบูรณ์แบบ wmctrlแต่มันจำเป็นต้องติดตั้ง
slybloty

wmctrl ไม่สามารถปิดถาดระบบ "แอป Chrome" pkill -o chromeไม่ว่า
Ken Sharp

26

คำสั่งนี้ออกจากแผนผังกระบวนการ chrome อย่างสง่างามในตัวจัดการหน้าต่างทั้งหมด:

pkill --oldest chrome

หรือถ้าคุณต้องการ:

/usr/bin/pkill --oldest --signal TERM -f chrome    

รายละเอียด:

  • หมายถึงอย่างสง่างาม: หลีกเลี่ยงการเห็น“ Google Chrome ไม่ได้ปิดอย่างถูกต้อง หากต้องการกลับมาอีกครั้ง ... "ในครั้งต่อไปที่เริ่มการทำงานของโครม
  • เบราว์เซอร์ chrome (เช่นรุ่น 39.0.2171.95) กับดักและการจัดการที่ดีเยี่ยม SIGTERM
  • ส่งสัญญาณกระบวนการเดียวรากของต้นไม้กระบวนการของโครเมี่ยม --oldest
  • SIGTERMเหมือนกับสัญญาณ15ดังนั้น--signal TERMหรือปล่อยทิ้งไว้เพราะSIGTERMเป็นสัญญาณเริ่มต้น
  • wmctrl ทำงานได้กับ Unity และอื่น ๆ แต่ไม่สามารถใช้งานได้กับโปรแกรมจัดการหน้าต่างทั้งหมด
  • wmctrl -c ปิดหน้าต่างทีละหน้าต่างเพื่อปิดหน้าต่างโครเมี่ยมทั้งหมดที่คุณต้องการ while wmctrl -c 'Google Chrome'; do sleep 0.2; done

1
ฉันถือว่าฉันใช้ pkill รุ่นเก่าเพราะ--oldestไม่ใช่ตัวเลือก: การใช้-oงาน
Ken Sharp

-fอาร์กิวเมนต์ pkill จะไม่ทำงานสำหรับฉัน ฉันมีกระบวนการอื่นที่ทำงานเหมือนรูทซึ่งมีคำว่า chrome อยู่ในบรรทัดคำสั่งดังนั้นฉันเพิ่งได้รับการอนุญาต หากปราศจาก-fมันก็ใช้งานได้อย่างสมบูรณ์แบบ
Brian Minton

สิ่งนี้ยังทำให้ฉันเห็น 'ไม่ปิดตัวลงอย่างสัมพันธ์'
xtrinch

ใน Ubuntu 18.04 ฉันจะทำให้มันทำงานได้อย่างไรหลังจากเรียกการรีสตาร์ทหรือปิดเครื่อง?
Jaime Hablutzel

1

สิ่งนี้ใช้ได้กับฉัน:

killall --quiet --signal 15 -- chrome

โปรดทราบว่าฉันใช้คำสั่ง verbose ค่อนข้างเพื่อให้สามารถอ่านได้ในรหัสแน่นอนคุณสามารถออก:

killall -q -15 chrome

1

เปิดMac OS Xใช้งานสิ่งนี้แทน

pkill -a -i "Google Chrome"

สิ่งที่ต้องทำคือมองหากระบวนการ Google Chrome และฆ่ากระบวนการหลักทั้งหมดด้วย

จากคู่มือ 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.

ตามคำตอบของ @ keith-cascio คุณสามารถลองฆ่ากระบวนการที่เก่าแก่ที่สุดแทน โปรดทราบว่านี่ไม่ได้ผลสำหรับฉัน

pkill -o -i "Google Chrome"

0

ลอง:

kill -3 <pid_of_chrome>

สิ่งนี้จะส่งสัญญาณ "QUIT" ไปยังโครเมี่ยมซึ่งขึ้นอยู่กับตัวจัดการหน้าต่างของคุณซึ่งจะเป็นสิ่งที่มักจะถูกส่งเมื่อถูกขอให้ปิด


2
สิ่งนี้จะทำหน้าที่เหมือนkillหรือkillallตำแหน่งที่ Chrome เห็นว่าขัดข้องและขอให้กู้คืน
slybloty

1
ลอง 15 แทน 3 แล้ว
Blackle Mori

6
ที่จริงแล้วSIGQUITมักจะไม่ถูกส่งไปยังแอปพลิเคชันเมื่อถูกขอให้ปิด (ฉันไม่ทราบว่ามี WM ใดที่ทำเช่นนี้) WM_DELETE_WINDOWเป็นมาตรฐาน
Chris Down

2
@ blacklemon67 kill -15 <pid_of_chrome>ทำในสิ่งที่ฉันกำลังมองหา แต่google-chromeมีหลาย pids และใช้เวลาไม่กี่พยายามที่จะได้รับสิทธิจริง
slybloty
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.