ฆ่า Chrome ทั้งหมดในบรรทัดคำสั่งหรือไม่


37

ในบางกรณีการฆ่าแท็บ / กระบวนการเดียวไม่สามารถทำได้และฉันต้องปิด Chrome ทั้งหมด เนื่องจาก Chrome มีหลายกระบวนการฉันจะปิดทั้งหมดได้ในคราวเดียวได้อย่างไร

ฉันรู้แล้ว...

pgrep chromeส่งคืน pids ทั้งหมด อะไรคือกลอุบายที่ทำให้ฉันสามารถปิดพวกเขาทั้งหมดด้วยการป้อนคำสั่งอื่นหรือรวมเข้ากับไฟล์ CSV หรืออะไรบางอย่าง


3
เนื่องจากมีอย่างน้อยสามคำตอบที่นี่ว่าไม่จำเป็นต้องทำkill -9ที่นี่สามอ้างอิงถกเหตุผลที่ควรเป็นทางเลือกสุดท้ายของคุณเมื่อฉันควรใช้ฆ่า -9 , ฆ่า -9และการใช้ประโยชน์ของการฆ่า -9
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

1
คำถามที่คล้ายกันในไซต์ U / Linux: unix.stackexchange.com/q/34101/6272
AlikElzin-kilaka

คำตอบที่สะอาดที่สุดจริงๆคือหนึ่งในคำถามในเว็บไซต์อื่น ๆ ตามที่ระบุไว้ด้านล่างเนื่องจากมันระบุว่ากระบวนการใดที่จะฆ่าโดยการประทับเวลาที่เก่าที่สุด:pkill --oldest chrome
nealmcb

คำตอบ:


55

ลองใช้pkill (1)

pkill chrome


เพิ่งทราบว่า pkill อาจไม่ได้อยู่ในทุกระบบ แต่ถ้าคุณมี pgrep ก็จะมี pkill มากกว่าเช่นกัน
kSiR

2
สำหรับฉันนี่เป็นกรณีที่ละเอียดอ่อนฉันต้องเขียนpkill Chrome
Liron Yahdav

1
ไม่ได้แยกฉัน การใช้pkill chromeมันไม่ได้ปิดกระบวนการหลักของ chrome มันปิดกระบวนการภายในทั้งหมดที่ก่อให้เกิดปัญหากับส่วนขยายทั้งหมด นอกจากนี้ยังทำให้บางหน้าต่างไม่เปิดในการเปิดตัวครั้งถัดไปทำให้สูญเสียสถานะ :(
AlikElzin-kilaka

2
@ AlikElzin-kilaka - คุณอาจลองฆ่ากระบวนการ Chrome ที่เก่าแก่ที่สุดอย่างชัดเจนด้วยบางสิ่งบางอย่างเช่นpkill --oldest chrome
rinogo

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

หรือ

pgrep chrome | xargs kill -9

หรือ

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

หลังมีความ "หรูหรา" มากกว่าเนื่องจากจะไม่รับ pid จริงสำหรับ "grep chrome" ภายในรายการ ps

:-)


มีเหตุผลอะไรที่จะใช้ps ... | แทนหรือเปล่าpgrepถ้าคุณไม่ต้องการใช้ pkill
Cascabel

3
นอกจากนี้ยังสุภาพเสมอที่จะเริ่มต้นด้วย SIGTERM ก่อนที่จะส่งต่อไปยัง SIGKILL
Cascabel

ไม่จริงๆเหตุผลเดียวที่ฉันโยนตัวเลือก ps ออกเนื่องจากระบบของฉันมีกระดูกเปลือยมากมายหมายความว่าเราไม่มีสิ่งต่าง ๆ เช่น pkill pgrep
kSiR

ฉันเห็นด้วย แต่มีคนเพิ่งขอให้ฆ่า: -O s / -9 / -1 / g
kSiR

6

ระบบบางระบบอาจมีโปรแกรมที่มีประโยชน์เช่นkillallและpidof(ซึ่งจัดทำโดย System V killall5):

killall chrome
kill -9 `pidof chrome`

ทั้งสองอย่างนี้ควรทำสิ่งที่คุณขอให้สำเร็จ


1
คุณไม่ควรใช้-9ยกเว้นเป็นทางเลือกสุดท้าย ทำkill PIDก่อน
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

killallนอกจากนี้ยังรองรับการใช้ตัวพิมพ์เล็กและตัวพิมพ์เล็กเช่นkillall --ignore-case ChRomEจะฆ่ากระบวนการ Chrome ทั้งหมด ตัวเลือกนอกจากนี้ยังสามารถลงไป--ignore-case -Iน่าเสียดายที่pkillไม่รองรับการพิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ - อย่างน้อยในระบบ Linux ที่ฉันได้ลอง (แต่มันรองรับ-iการใช้งานตัวพิมพ์เล็กและตัวพิมพ์ใหญ่บน MacOS)
nonbeing

1

คุณควรใช้จริงๆpkillตามที่ jschmier แนะนำ แต่ถ้าคุณยืนยัน pgrep ให้ใช้การทดแทนคำสั่ง:

kill $(pgrep chrome)

จะไม่ kill pgrep chrome`` ยังทำงาน;)
kSiR

@kSiR: [ปลายเดือน] ใช่ แต่$(...)เป็นนิสัยที่ดีในการเข้ามาเพื่อให้คุณสามารถทำรังเมื่อคุณต้องการและพลิกระหว่างตัวคั่นที่ตรงกันในตัวแก้ไขของคุณ
Cascabel

1

คำสั่งที่ง่ายที่สุดคืออันนี้:

sudo killall chrome

นี่จะด้วยสิทธิ์ระดับผู้ดูแลระบบฆ่ากระบวนการทั้งหมดที่มีchromeในชื่อของพวกเขา

ดูman killallข้อมูลเพิ่มเติม ...


3
คุณช่วยเพิ่มคำอธิบายเล็กน้อยเกี่ยวกับการทำงานของคำตอบได้ไหม?
nhinkle


0

คุณสามารถลองทำสิ่งนี้:

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

คุณไม่ควรใช้ -9 เว้นแต่จะเป็นทางเลือกสุดท้าย ทำkill PIDก่อน
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

จุดดี. ฉันปรับปรุงคำตอบของฉัน
Nathan Fellman

ไม่จำเป็นต้องมีท่ออื่นผ่านcut; psทำได้เอง: ps -o pid= -C chrome | xargs kill.
musiphil

และมันเป็นนิสัยที่ดีที่จะนำ-rใน:xargs ps -o pid= -C chrome | xargs -r kill
musiphil

@musiphil: -r คืออะไร?
Nathan Fellman

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.