คำถามติดแท็ก kill

kill - ส่งสัญญาณที่ระบุไปยังกระบวนการหรือกลุ่มกระบวนการ

3
มีขีด จำกัด สูงสุดของจำนวนกระบวนการซอมบี้ที่คุณมีหรือไม่?
ฉันเคยทำงานกับระบบ HP-UX และผู้ดูแลระบบเก่าบอกฉันว่ามีจำนวน จำกัด ของกระบวนการซอมบี้ที่คุณมีในระบบฉันเชื่อว่า 1024 นี่เป็นเพดานจริงหรือเปล่า? ฉันคิดว่าคุณสามารถมีซอมบี้จำนวนเท่าใดก็ได้ราวกับว่าคุณมีกระบวนการจำนวนมาก ... ? มันแตกต่างจาก distro ไป distro หรือไม่? จะเกิดอะไรขึ้นถ้าเรามีขีด จำกัด สูงสุดและพยายามสร้างซอมบี้ตัวใหม่

2
ฆ่ากระบวนการที่ถูกระงับหรือไม่
ฉันสับสนเล็กน้อยโดย: % vim tmp zsh: suspended vim tmp % kill %1 % jobs [1] + suspended vim tmp % kill -SIGINT %1 % jobs [1] + suspended vim tmp % kill -INT %1 % jobs [1] + suspended vim tmp ดังนั้นฉันจึงลาออกเพื่อ "ทำเอง" และสงสัยว่าทำไมในภายหลัง: % fg [1] - continued vim tmp …

6
ฆ่ากระบวนการ Java เดียวเท่านั้น
ฉันมักจะใช้งานจาวาแอปพลิเคชั่นไม่กี่อันหนึ่งสำหรับเซิร์ฟเวอร์ที่ใช้งานในเครื่องและอื่น ๆ สำหรับ IDE บางตัวเช่น NetBeans และเป็นครั้งคราวหลังจากมีการปรับใช้มากมายเซิร์ฟเวอร์ของฉันติดอยู่ที่ OutOfMemoryException ดังนั้นฉันต้องฆ่ากระบวนการ Java เพื่อเริ่มต้นใหม่ ดังนั้นฉันจึงทำเช่นpkill -9 javaนี้ แต่ยังฆ่า IDE ที่รันอยู่ซึ่งฉันไม่ต้องการ ดังนั้นฉันจะฆ่าเฉพาะแอปพลิเคชันที่เชื่อมโยงกับเซิร์ฟเวอร์ที่ใช้งานและไม่ใช่แอปพลิเคชันอื่น ๆ ได้อย่างไรฉันคิดว่าพวกเขาทั้งหมดกำลังทำงานภายใต้กระบวนการเดียวกัน
17 process  java  kill 

4
killall ให้ฉัน "ไม่พบกระบวนการ" นอกจาก ps
ใครสามารถอธิบายให้ฉันความแตกต่างระหว่างkillและkillall? เหตุใดจึงไม่killallเห็นสิ่งที่psแสดง # ps aux |grep db2 root 1123 0.0 0.8 841300 33956 pts/1 Sl 11:48 0:00 db2wdog db2inst1 1125 0.0 3.5 2879496 143616 pts/1 Sl 11:48 0:02 db2sysc root 1126 0.0 0.6 579156 27840 pts/1 S 11:48 0:00 db2ckpwd root 1127 0.0 0.6 579156 27828 pts/1 S 11:48 0:00 …
17 linux  process  kill  ps 

2
ฆ่ากระบวนการที่เริ่มต้นใหม่อย่างต่อเนื่อง
เกิดอะไรขึ้นถ้า 'kill -9' ไม่ทำงาน? หรือวิธีการฆ่าสคริปต์ที่เริ่มกระบวนการใหม่ ไม่ได้ช่วยฉันด้วยซ้ำ ฉันมีสคริปต์หลามซึ่งเริ่มต้นโดยอัตโนมัติที่มี ID กระบวนการอื่นใช้พอร์ตเดียวกันเมื่อถูกฆ่าตายsudo kill -9 <pid>โดยใช้ $ lsof -i :3002 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python 13242 ubuntu 3u IPv4 64592 0t0 TCP localhost:3002 (LISTEN) $ sudo kill -9 13242 $ lsof -i :3002 COMMAND PID USER FD TYPE DEVICE …
16 process  kill 

3
การยกเลิกสคริปต์เชลล์ bash ที่รันในพื้นหลัง
ฉันมักจะใช้bashเชลล์สคริปต์เพื่อรันคำสั่งง่าย ๆ สำหรับไฟล์ที่แตกต่างกัน ตัวอย่างเช่นสมมติว่าฉันมีดังต่อไปนี้bashเชลล์สคริปต์เรียกscript.shว่ารันโปรแกรม / คำสั่งfooสามไฟล์ข้อความ"a.txt", "b.txt", "c.txt": #!/bin/bash for strname in "a" "b" "c" do foo $strname".txt" done นอกจากนี้สมมติว่าfoo $strname".txt"ช้าดังนั้นการเรียกใช้สคริปต์จะใช้เวลานาน (ตัวอย่างเช่นชั่วโมงหรือวัน) ด้วยเหตุนี้ฉันต้องการใช้nohupเพื่อให้การดำเนินการต่อไปแม้ว่าเทอร์มินัลจะปิดหรือตัดการเชื่อมต่อ ฉันต้องการให้สคริปต์ไปที่พื้นหลังทันทีดังนั้นฉันจะใช้&โอเปอเรเตอร์ ดังนั้นฉันจะใช้คำสั่งต่อไปนี้เพื่อโทรscript.sh: nohup bash script.sh & วิธีนี้ใช้งานได้ดีสำหรับการเรียกใช้สคริปต์ในพื้นหลังและไม่มีการแฮงค์ แต่ตอนนี้สมมติว่าฉันต้องการยุติการประมวลผลในบางจุดด้วยเหตุผลบางอย่าง ฉันจะทำสิ่งนี้ได้อย่างไร ปัญหาที่ฉันได้พบก็คือว่าโดยดูที่topผมเห็นเพียงที่สอดคล้องกับfoo "a.txt"ฉันสามารถยุติการfooโทรนั้นได้ แต่จากนั้นการโทรที่fooสอดคล้องกันจะ"b.txt"ได้รับการเรียกและจากนั้นฉันต้องยุติการโทรนั้นเช่นกันและต่อไปเรื่อย ๆ สำหรับไฟล์ข้อความหลายสิบหรือร้อยไฟล์ที่ระบุในforลูปมันจะกลายเป็นความเจ็บปวดที่จะยกเลิกทุก ๆไฟล์ทีละไฟล์foo! ดังนั้นฉันต้องยกเลิกเชลล์สคริปเองแทนการโทรเฉพาะที่ออกจากเชลล์สคริป เมื่อฉันพิมพ์คำสั่ง ps -u myusername myusernameชื่อผู้ใช้ของฉันอยู่ที่ไหนฉันได้รับรายการกระบวนการที่ฉันใช้อยู่ bashแต่ผมเห็นสองรหัสกระบวนการที่แตกต่างกันเรียกว่า ฉันจะรู้ได้อย่างไรว่ากระบวนการเหล่านี้ถ้ามีการสอดคล้องกับการเรียกร้องเดิมของฉันnohup bash script.sh &?

3
วิธีฆ่า daemon ด้วยชื่ออย่างสง่างาม
killallฉันมักจะฆ่ากระบวนการด้วย killall markdoc แต่ฉันไม่แน่ใจว่าคำสั่งนี้ยุติกระบวนการอย่างสง่างาม คำสั่งนี้ประสบความสำเร็จในการยุติอย่างงดงามหรือไม่? หากไม่เป็นเช่นนั้นฉันจะฆ่ากระบวนการด้วยชื่ออย่างสง่างามได้อย่างไร
16 process  kill 

4
การค้นหา ID ของกระบวนการและฆ่ามัน
เมื่อใดที่ฉันต้องฆ่ากระบวนการพื้นหลังที่ฉันทำ ps -e | grep <process_name> ซึ่งพิมพ์บางอย่างเช่นนี้1766 ? 00:00:13 conkyจากนั้นฉันใช้ ID กระบวนการในการkillkill 1766มันชอบ มีวิธีใดที่ฉันสามารถทำให้สิ่งนี้ง่ายขึ้น? ทำให้เร็วขึ้นไหม ลดจำนวนการพิมพ์หรือไม่
16 process  grep  kill  ps 

5
จะฆ่ากระบวนการทั้งหมดด้วยชื่อที่กำหนดได้อย่างไร
ฉันเรียกใช้คำสั่งps -A | grep <application_name>และรับรายการกระบวนการเช่นนี้: 19440 ? 00:00:11 <application_name> 21630 ? 00:00:00 <application_name> 22694 ? 00:00:00 <application_name> 19440ฉันต้องการที่จะฆ่ากระบวนการทั้งหมดจากรายการ 21630, 22694, ฉันลองแล้วps -A | grep <application_name> | xargs kill -9 $1แต่ใช้งานได้กับข้อผิดพลาด kill: illegal pid ? kill: illegal pid 00:00:00 kill: illegal pid <application_name> ฉันจะทำสิ่งนี้ได้อย่างสง่างาม
16 grep  process  kill  ps 

3
ORing ด้วยความจริงในคำสั่งมากกว่า ssh
เมื่อฉันพยายามเรียกใช้pkill -fจากระยะไกลผ่าน ssh และพยายามที่จะทิ้งรหัสข้อผิดพลาดที่เป็นไปได้ (เพื่อดำเนินการต่อกับส่วนที่เหลือของสคริปต์ของฉันแม้ว่าจะไม่พบกระบวนการ) || trueไม่ทำงานตามที่ฉันคาดหวัง $ pkill asdf || true $ echo $? 0 $ pkill -f asdf || true $ echo $? 0 $ ssh pi@10.20.0.10 "pkill asdf || true" $ echo $? 0 $ ssh pi@10.20.0.10 "pkill -f asdf || true" 255 ฉันคิดว่ามันเป็นsshที่ส่งกลับ 255 ไม่ใช่คำสั่งระหว่างเครื่องหมายคำพูด แต่ทำไม?
15 shell  ssh  kill 

5
วิธีการรีสตาร์ทเครื่อง Linux ผ่าน SSH หากระบบไฟล์รูทไม่ทำงาน
เช่นเดียวกับความอยากรู้ มีบางอย่างผิดพลาดกับเครื่อง Linux ทำให้ระบบไฟล์รูทแสดงเป็น "64Z" คำสั่งบางคำสั่งทำงาน, เช่นtop, dfและkill, แต่มีบางคำสั่งเช่นreboot"ไม่พบคำสั่ง" (เนื่องจากไม่สามารถอ่านระบบไฟล์รูท) และchmodเกิดข้อผิดพลาดในการแบ่งส่วน มีวิธีใดบ้างที่จะรีสตาร์ทระบบเช่นไม่มีrebootโปรแกรมหรือไม่ ฉันพยายามkill -PWR 1(ส่ง SIGPWR เพื่อเริ่มต้น) แต่สิ่งนี้ดูเหมือนจะไม่ทำอะไรเลย ส่วนใหญ่มันเป็นความอยากรู้ทางวิชาการ เพื่อนร่วมห้องที่กำลังทำงานอะไรก็ตามที่ทำงานกับฐานข้อมูลขนาดใหญ่ที่ทำให้เกิดความล้มเหลวก็จะทำการรีสตาร์ทเครื่องทันที
15 kernel  kill 

1
มีวิธีใดที่จะบอกได้ว่าเชลล์สคริปต์ถูกฆ่าด้วยสัญญาณ 9
ฉันมีสคริปต์ทุบตี (เรียกจากโปรแกรมจาวา) ที่ยังคงถูกฆ่า ฉันมักจะจับsignal 15ด้วยtrapแต่แล้วบางส่วนสัญญาณอื่น ๆ ที่มาพร้อมที่ฉันสงสัยว่าเป็นแต่ฉันในพื้นตาบอดเป็นไปได้ถ้ามันเป็นจริงsignal 9signal 9 ฉันรู้ว่าคุณไม่สามารถtrap signal 9มีวิธีอื่นที่ฉันสามารถบอกได้ว่าsignal 9กำลังฆ่าเชลล์สคริปต์ของฉันหรือไม่

3
ทำให้กระบวนการไม่มีทักษะบน Linux
ฉันกำลังทำงานกับแอปพลิเคชันตัวจัดการรหัสผ่านและเพื่อเหตุผลด้านความปลอดภัยฉันต้องการเปิดใช้งานกระบวนการที่ไม่มีทักษะ นอกจากนี้ฉันไม่ต้องการให้โปรแกรมนี้เป็นดีมอนเพราะฉันต้องอ่านจากอินพุตมาตรฐานและเขียนลงไป มีวิธีทำเช่นนี้หรือไม่?
14 linux  process  kill 


2
SIGQUIT เหมือนกับ SIGTERM หรือไม่
ฉันกำลังเรียนรู้ CentOS / RHEL และกำลังทำบางสิ่งเกี่ยวกับการจัดการกระบวนการ หนังสือ RHCSA ที่ฉันกำลังอ่านกำลังอธิบายว่ากำลังkill 1234ส่ง SIGQUIT ฉันคิดเสมอว่าคำสั่ง kill โดยไม่เพิ่มสวิตช์สำหรับชนิดสัญญาณควรเป็นค่าเริ่มต้นkill -15 SIGTERM เป็นkill -15และ SIGKILL kill -9ใช่ไหม CentOS / RHEL ใช้วิธีที่แตกต่างกันเล็กน้อยkill -15หรือว่าฉันเพิ่งเข้าใจผิด? แก้ไข: kill -lให้ SIGQUIT เป็นkill -3และดูเหมือนว่าจะเกี่ยวข้องกับการใช้แป้นพิมพ์เพื่อยุติกระบวนการ man 7 signalและระบุด้วยว่า SIGQUIT นั้นเป็นkill -3ดังนั้นฉันสามารถสันนิษฐานได้ว่าหนังสือของฉันไม่ถูกต้องในการระบุว่า SIGQUIT นั้นเป็นkill -15ค่าเริ่มต้น

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