คำสั่ง
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 เป็นจำนวนบวก