สคริปต์ Dtrace newproc.d หยุดทำงานหลังจากอัปเกรดเนื่องจากไม่มีโพรบ proc ::: exec-success ที่ขาดหายไป


0

ฉันพยายามวิ่ง:

$ sudo /usr/bin/newproc.d

ซึ่งควรจะสอดแนมกระบวนการใหม่ในขณะที่พวกเขากำลังดำเนินการ แต่มันล้มเหลวด้วยข้อผิดพลาด:

dtrace: ไม่สามารถรวบรวมสคริปต์ /usr/bin/newproc.d: บรรทัดที่ 22: คำอธิบายโพรบproc:::exec-successไม่ตรงกับโพรบใด ๆ

นี่เป็นบน OS X 10.11.2 และเท่าที่ฉันจำได้ว่านี่คือการทำงานก่อนการอัพเกรด

ดูเหมือนว่า OS X ใหม่จะไม่มีproc:::exec-successโพรบอีกต่อไปเนื่องจากฉันได้ตรวจสอบโดย:

$ sudo dtrace -l | grep proc:::exec-success

รหัสความล้มเหลวของสคริปต์นั้น (หมายเหตุ: สิ่งนี้ได้รับจากระบบฉันไม่ได้เปลี่ยน):

proc:::exec-success
{
  print_pid[pid] = 1; /* This pid emerged from an exec, make a note of that. */
}

โพรบนั้นถูกลบหรือเปลี่ยนชื่อเป็นโพรบอื่นหรือไม่ บางทีฉันสามารถเปิดใช้งานมันอย่างใด? มิฉะนั้นฉันจะใช้อะไรแทนได้บ้าง

คำตอบ:


1

อาจเป็นเพราะคุณสมบัติ "รูท" ใน El Capitan

คุณสามารถปิดใช้งานคุณลักษณะนี้ได้โดยการรีบูตเข้าสู่โหมดการกู้คืนและเรียกใช้คำสั่งcsrutil disable(และคุณสามารถเปิดใช้งานอีกครั้งด้วยcsrutil enable)

มีคำอธิบายที่ดีเกี่ยวกับคำถามที่แตกต่างกันนี้: อะไรคือคุณสมบัติ "รูท" ใน El Capitan จริง ๆ ? คำตอบที่สองระบุที่อยู่ Dtrace โดยตรง


1

เพื่อความปลอดภัยยิ่งขึ้นคุณสามารถเรียกใช้:

csrutil enable --without dtrace

แต่นี่ไม่ได้มีไว้สำหรับการใช้งานจริงตาม Apple

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