วิธีการดีบั๊ก“ เปิดไฟล์มากเกินไป”?


4

ฉันมีโปรแกรมที่ออกหลังจากเวลาด้วย "ไฟล์เปิดมากเกินไป" ฉันจะติดตามไฟล์ที่เปิดและปิดได้อย่างไร ฉันรู้ว่าฉันสามารถตั้งค่าขีด จำกัด นี้ให้สูงขึ้นได้ แต่นั่นจะทำให้เลื่อนไปที่ปัญหาเท่านั้น

ฉันจำได้ว่าใช้โปรแกรมเช่น dtruss หรือ dtrace เพื่อจุดประสงค์นั้น แต่ฉันจำไม่ได้ว่าฉันเรียกใช้มันอย่างไรและ--helpทำให้เกิดความสับสนมาก

ฉันรันโปรแกรมนั้นด้วยสคริปต์ตัวตัดตาม nodejs ดังนั้นฉันต้องทำตามกระบวนการลูก

คำถาม: อะไรคือกลยุทธ์ที่ดีที่สุดในการค้นหาว่าไฟล์ใด (คำอธิบาย) เปิดขึ้นและไฟล์ใดถูกปิด?


คุณช่วยให้รายละเอียดเพิ่มเติมเกี่ยวกับโปรแกรมจริงได้ไหม?
Gerry

มันขึ้นอยู่กับ TeX (LuaTeX) ฉันใช้สคริปต์ตัวตัดคำ "start.js" ที่เริ่มต้น TeX โปรแกรมของฉันโหลดภาพและอาจไม่ปิดเลย และฉันต้องการที่จะ "ติดตาม" การเปิด / ปิดไฟล์ภายนอก
topskip

คำตอบ:


2

lsof จะแสดงการจัดการไฟล์ที่เปิด

ถ้าคุณรู้ว่า PID ใช้-pธง

เช่นบนเปลือก zsh ของฉันในขณะที่ฉันเห็น:

alex@smiley:~|⇒  lsof -p 82946
COMMAND   PID USER   FD   TYPE DEVICE  SIZE/OFF     NODE NAME
zsh     82946 alex  cwd    DIR  14,12      2414   186278 /Users/alex
zsh     82946 alex  txt    REG  14,12   1103984       73 /bin/zsh
zsh     82946 alex  txt    REG  14,12    474672   787843 /usr/lib/zsh/4.3.11/zsh/zle.so
zsh     82946 alex  txt    REG  14,12    258672   787864 /usr/lib/zsh/4.3.11/zsh/complete.so
zsh     82946 alex  txt    REG  14,12    120576   787863 /usr/lib/zsh/4.3.11/zsh/complist.so
zsh     82946 alex  txt    REG  14,12     71264   787838 /usr/lib/zsh/4.3.11/zsh/zutil.so
zsh     82946 alex  txt    REG  14,12     79968   787852 /usr/lib/zsh/4.3.11/zsh/parameter.so
zsh     82946 alex  txt    REG  14,12    599280  7719861 /usr/lib/dyld
zsh     82946 alex  txt    REG  14,12 296980480 12427083 /private/var/db/dyld/dyld_shared_cache_x86_64
zsh     82946 alex    0u   CHR   16,0   0t26354     6285 /dev/ttys000
zsh     82946 alex    1u   CHR   16,0   0t26354     6285 /dev/ttys000
zsh     82946 alex    2u   CHR   16,0   0t26354     6285 /dev/ttys000
zsh     82946 alex   10u   CHR   16,0    0t3432     6285 /dev/ttys000

คอลัมน์ประเภทแสดงไฟล์ประเภทต่างๆหรือไฟล์หลอกที่อาจเปิดอยู่ซ็อกเก็ตไพพ์ ฯลฯ

ulimit หรือขีด จำกัด ขึ้นอยู่กับระบบและเชลล์ให้คุณเปลี่ยนจำนวนไฟล์ที่เปิด

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