เกี่ยวกับhttps://stackoverflow.com/a/41613532/1223975แก้ปัญหาที่อเล็กซานเดมิลส์โพสต์ใหม่Timeout in Seconds Darwinเป็นวิธีแก้ปัญหาสำหรับ UNIX เหมือนระบบปฏิบัติการที่ไม่ได้มี tailGNU ไม่เฉพาะเจาะจงDarwinแต่ขึ้นอยู่กับอายุของระบบปฏิบัติการที่คล้าย UNIX บรรทัดคำสั่งที่นำเสนอมีความซับซ้อนเกินความจำเป็นและอาจล้มเหลว:
lsof -p $pid +r 1m%s -t | grep -qm1 $(date -v+${timeout}S +%s 2>/dev/null || echo INF)
บน UNIX เก่าอย่างน้อยหนึ่งlsofอาร์กิวเมนต์จะ+r 1m%sล้มเหลว (แม้สำหรับ superuser):
lsof: can't read kernel name list.
m%sเป็นข้อกำหนดรูปแบบการออก โพสต์โปรเซสเซอร์ที่เรียบง่ายไม่จำเป็นต้องใช้ ตัวอย่างเช่นคำสั่งต่อไปนี้รอบน PID 5959 นานถึงห้าวินาที:
lsof -p 5959 +r 1 | awk '/^=/ { if (T++ >= 5) { exit 1 } }'
ในตัวอย่างนี้ถ้า PID 5959 ออกจากสอดคล้องของตัวเองก่อนที่ห้าวินาทีผ่านไปเป็น${?} 0ถ้าไม่${?}กลับมา1หลังจากห้าวินาที
นอกจากนี้ยังอาจจะมีมูลค่า noting ชัดแจ้งในที่+r 1นี้1เป็นช่วงโพล (วินาที) ดังนั้นจึงอาจมีการเปลี่ยนแปลงเพื่อให้เหมาะกับสถานการณ์