Tôi đã tìm thấy gói NPM nhỏ này thực hiện công việc tuyệt vời là tăng tốc lsof cho các tệp: https://www.npmjs.com/package/lsof-mac-fast .
Tôi đã tạo một tập lệnh bao bọc để sử dụng nó:
node ~/tools/MacOs/lsof.js db.mv.db 1000
repeating using interval: 1000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 7336 jumar 256u REG 1,4 194465792 53854404
db.mv.db
Đây là kịch bản của tôi:
// https://www.npmjs.com/package/lsof-mac-fast
var fastLsof = require('lsof-mac-fast');
var myArgs = process.argv.slice(2);
var fileToCheck = myArgs[0];
var repeatIntervalMs = myArgs[1];
// console.log('myArgs: ', myArgs);
function lsofFile(file) {
fastLsof.lsof([file], function(err, stdout, stderr) {process.stdout.write(stdout)});
}
if (repeatIntervalMs) {
// repeat until killed
// https://javascript.info/settimeout-setinterval
console.log('repeating using interval: ' + repeatIntervalMs);
var timerId = setInterval(() => lsofFile(fileToCheck), repeatIntervalMs);
} else {
// just one time
lsofFile(fileToCheck);
}
Khoảng thời gian lặp lại có thể rất thấp, ví dụ 10 ms dường như hoạt động tốt.
lsof
thể hiện? Có bao nhiêu tiến trình và chủ đề có tập tin đó mở? Tải CPU khi không chạy lsof là gì?