Tập lệnh Dtrace newproc.d đã ngừng hoạt động sau khi nâng cấp, vì thiếu Proc ::: thăm dò exec-thành công


0

Tôi đang cố chạy:

$ sudo /usr/bin/newproc.d

giả sử để theo dõi các tiến trình mới khi chúng được thực thi, nhưng nó không thành công với lỗi:

dtrace: không thể biên dịch tập lệnh /usr/bin/newproc.d: dòng 22: mô tả thăm dò proc:::exec-successkhông khớp với bất kỳ đầu dò nào

Đây là trên OS X 10.11.2 và theo tôi nhớ, nó đã hoạt động trước khi nâng cấp.

Có vẻ như OS X mới không còn proc:::exec-successthăm dò nữa khi tôi đã kiểm tra:

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

Không thể mã của tập lệnh đó (lưu ý: điều này được cung cấp bởi hệ thống, tôi đã không thay đổi nó):

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

Là đầu dò đó đã được gỡ bỏ hoặc đổi tên thành đầu dò khác nhau? Có lẽ tôi có thể kích hoạt nó bằng cách nào đó? Nếu không những gì tôi có thể sử dụng thay thế?

Câu trả lời:


1

Điều này có lẽ là do tính năng "Rootless" trong El Capitan.

Bạn có thể vô hiệu hóa tính năng này bằng cách khởi động lại vào chế độ phục hồi và chạy lệnh csrutil disable(và bạn có thể kích hoạt lại nó tương tự csrutil enable).

Có một lời giải thích tuyệt vời cho câu hỏi này Đặt câu hỏi khác nhau: Tính năng root rootless trên El Capitan là gì? Câu trả lời thứ hai liên quan trực tiếp đến Dtrace.


1

Để an toàn hơn nữa, bạn có thể chạy:

csrutil enable --without dtrace

nhưng điều này không nhằm mục đích sử dụng sản xuất theo Apple.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.