วิธีติดตามไฟล์ทั้งหมดที่กระบวนการเปิดในช่วงชีวิต


23

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


คำตอบ:


25

การใช้คำสั่งstraceอาจเป็นไปได้กับสิ่งที่ชอบ:

strace -e trace=open program [arguments]

นี่จะแสดงไฟล์ทั้งหมดที่กระบวนการพยายามเข้าถึง บางคนอาจคิดว่าสิ่งที่ชอบstrace -e trace=open program [arguments] | grep -v ' = -1 ENOENT'สามารถปรับปรุงสถานการณ์ได้ แต่ก็ไม่เป็นความจริงเช่นกัน openหลังจะล้มเหลวในการตรวจสอบยังไม่เสร็จแล้วกลับมาโทรไป
facetus

2
openatโปรดทราบว่าสัญญาณที่คุณต้องการอาจจะมี
merlinND

6

ฉันไม่แน่ใจว่าฉันเข้าใจสิ่งที่คุณต้องการจะทำกับสิ่งนี้ แต่คุณคิดว่า strace หรือไม่? จะแสดงการโทรของระบบทั้งหมดรวมถึงไฟล์

แก้ไข: อย่าลืมตัวเลือก -f ที่ช่วยให้คุณทำตามกระบวนการแยก


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