คำสั่ง
ping <dest> &
ทำให้ ping ไปที่พื้นหลัง อย่างไรก็ตามยังคงพิมพ์เอาต์พุตไปยังเครื่องเทอร์มินัล Ctrl-C ไม่ได้หยุดเพียงแนะนำพร้อมท์ใหม่ จะหยุดมันได้อย่างไรจากเครื่องเทอร์มินัล?
คำสั่ง
ping <dest> &
ทำให้ ping ไปที่พื้นหลัง อย่างไรก็ตามยังคงพิมพ์เอาต์พุตไปยังเครื่องเทอร์มินัล Ctrl-C ไม่ได้หยุดเพียงแนะนำพร้อมท์ใหม่ จะหยุดมันได้อย่างไรจากเครื่องเทอร์มินัล?
คำตอบ:
ก่อนอื่นให้ป้อนfgเทอร์มินัลเดียวกับที่pingคำสั่งของคุณกำลังทำงาน (จะนำกระบวนการไปสู่เบื้องหน้า) จากนั้นกดCtrl+ cเพื่อหยุดกระบวนการ
jobsเพื่อรับรายการกระบวนการที่ทำงานในพื้นหลัง
ffmpegใช้
หากเป็นงานพื้นหลังเพียงงานเดียวของคุณคุณสามารถฆ่ามันkill %1ได้ หากไม่แน่ใจว่าคุณสามารถแสดงรายการงานแบ็คกราวน์ทั้งหมดของคุณด้วยjobsและใช้ในkill %<n>กรณีที่คุณแทนที่ n ด้วยจำนวนงานปิงของคุณ
เมื่อคุณส่งกระบวนการที่จะพื้นหลังไม่ว่าจะโดยการใช้ctrl- zหรือโดยในตอนท้ายของคำสั่งคุณจะได้รับการส่งออกในรูปแบบต่อไปนี้:& [index] process-idหากคุณส่งหลายกระบวนการไปยังพื้นหลังดัชนีจะเพิ่มขึ้นเรื่อย ๆ ทุกครั้ง
ตัวอย่างเช่น:
$ sleep 100 &
[1] 41608
$ sleep 101 &
[2] 41609
$ sleep 102 &
[3] 41610
$ sleep 103 &
[4] 41611
$ sleep 104 &
[5] 41612
$ sleep 105 &
[6] 41613
$ sleep 106 &
[7] 41614
เพื่อหยุดเฉพาะคุณสามารถใช้kill <process-id>หรือใช้fg <index>ตามด้วยctrl-c
ตัวอย่างการใช้เอาต์พุตก่อนหน้า:
$ kill 41614
หรือ
$ fg 7
sleep 106
^C
เปิดแท็บใหม่ของเทอร์มินัลให้เรียกใช้:
$ pgrep ping
2564
จากนั้นฆ่าkillคำสั่งpid โดยใช้:
$ kill 2564
pgrepเพื่อค้นหากระบวนการตามชื่อคุณยังสามารถใช้pkillเพื่อฆ่ากระบวนการตามชื่อ ไม่จำเป็นต้องพิมพ์ / คัดลอกกระบวนการ id killและการใช้งาน
killall pingเมื่อคุณเป็นรากก็เพียง
วิธีการที่แตกต่างกันเล็กน้อยต่อการ ping อย่างต่อเนื่องคือการใช้ตัวเลือก -c และป้อนจำนวนเวลาที่คุณต้องการให้เรียกใช้วิธีที่มันจะหยุดตัวเองหลังจากการนับที่ต้องการเช่นด้านล่าง ping จะหยุดหลังจาก 100 pings
ping -c 100 192.168.1.1 &
เพียงใช้:
kill -9 %%
และมันจะฆ่ากระบวนการพื้นหลังปัจจุบันที่คุณใช้งานอยู่
คุณสามารถดูกระบวนการทั้งหมดที่คุณใส่ไว้ในพื้นหลัง (สำหรับเซสชันปัจจุบัน) พร้อมกับjobsคำสั่งหลังจากที่คุณเรียกใช้คำสั่งนี้คุณจะเห็นกระบวนการทั้งหมดที่กำลังทำงานอยู่บน bash ปัจจุบันและทางด้านซ้ายของแต่ละกระบวนการคุณสามารถเห็นตัวเลขบางส่วน:
[1]- Running sleep 200000 &
[2]+ Running sleep 300000 &
คุณสามารถยกเลิกงาน (กระบวนการ) โดยใช้kill -15 n%(n คือตัวเลขที่อยู่ในเครื่องหมาย [[])
-15สำหรับการยกเลิกกระบวนการอย่างถ้าคุณต้องการบังคับปิดกระบวนการเพียงใช้-9แทน-15
PS: มันชัดเจนถ้าคุณเรียกใช้คำสั่งที่มีสิทธิ์ใช้งานรูทคุณต้องรันkill -15 n%ด้วยsudo
2) คุณสามารถดูกระบวนการทั้งหมดที่ทำงานอยู่ในระบบด้วยps -auxและสำหรับการดูping:
ps -aux | grep ping
ผลลัพธ์เป็นเช่น:
root 2615 0.0 0.0 25828 1052 pts/0 S 02:12 0:00 ping 8.8.8.8
หมายเลขที่สอง (2615) คือ PID หรือ ID กระบวนการและคุณสามารถยุติกระบวนการด้วย
sudo kill -15 2615
pingการทำซ้ำโดยธรรมชาติด้วยการนับ-c N- โดยที่ N เป็นจำนวนบวก