อธิบายว่าทำไมนาฬิกา 'งาน' ไม่ทำงาน แต่ดู 'ps' ทำงาน


9

jobsเป็นคำสั่งโปรดของฉันเพื่อดูรหัสของฉันที่ทำงานในพื้นหลัง เพื่อตรวจสอบพวกเขาแบบไดนามิกฉันมักจะพิมพ์

watch 'jobs'

ซึ่งไม่แสดงอะไรเลย อย่างไรก็ตาม

watch 'ps'

ทำงานได้อย่างสมบูรณ์ ฉันทำผิดพลาดไปหลายเดือนแล้ว

ฉันคิดว่าการเข้าใจว่าทำไมการทำงานครั้งแรกไม่ทำงานในขณะที่งานที่สองสามารถช่วยฉันหยุดทำข้อผิดพลาดเดียวกันได้

ใครช่วยได้บ้าง



1
คำถามที่มีประโยชน์มากขึ้นก็จะเป็น“ วิธีการที่ฉันจะได้รับมันจะทำงานหรือไม่” อย่างไรก็ตามทำไม (ในกรณีนี้) จึงน่าสนใจกว่า
ctrl-alt-delor

คำตอบ:


20

jobsคือบิวด์อินที่รายงานสถานะของเชลล์ปัจจุบัน: คำสั่งที่ใช้แบ็คกราวน์กับเชลล์นั้น watchเรียกใช้เชลล์ใหม่สำหรับการดำเนินการแต่ละครั้งและเชลล์jobsนั้นไม่มีวิธีรู้ว่าwatchงานของเชลล์พาเรนต์คืออะไร psเป็นคำสั่งภายนอกและไม่เคยใช้สถานะของเชลล์

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