Dalam banyak kasus "lsof" tidak diinstal pada mesin yang dengan saya harus bekerja, tetapi "fungsi" lsof akan sangat dibutuhkan (mis. Pada AIX). : \
Apakah ada "lsof" seperti aplikasi di dunia non-windows?
UPDATE: for ex .: Saya perlu tahu bahwa proses apa yang menggunakan direktori "/ home / nama pengguna"?
process
open-files
administration
lsof
LanceBaynes
sumber
sumber
Jawaban:
Saya tahu
fuser
, lihat apakah tersedia di sistem Anda.sumber
sudo fuser -vm / 2>&1 | awk '$3 ~ /f|F/' | less
dapat menunjukkan semua proses memiliki file terbuka di sistem file yang terpasang/
. Lihat halaman manual untuk bantuan spesifik.sudo fuser -vm / 2>&1 | awk '$3 ~ /f|F/' | while read user pid flags rest; do printf '%10s %10s %10s %s\n' $user $pid $flags "$(</proc/$pid/cmdline)"; done | less
The Unix Rosetta Stone adalah sumber yang baik untuk jenis pertanyaan. Ini menyebutkan beberapa alternatif untuk lsof (lihat di bawah). Namun perlu dicatat bahwa lsof adalah aplikasi standar de facto untuk apa yang dilakukannya.
Jika yang Anda inginkan adalah menemukan ID proses yang memiliki file tertentu terbuka, maka Anda dapat menggunakannya
fuser
pada sistem yang mendukung POSIX.Pada sistem operasi dengan
/proc
direktori, Anda dapat meminta file dibuka dengan proses (kebalikan darilsof
mode operasi yang paling umum) melalui informasi di/proc
. Beberapa sistem operasi memiliki perintah untuk itu:procfiles
dikirimkan bersama sistem (sejak AIX 5.2). Lihat juga pembaruan alat kinerja AIX 5.2 dan Penggunaan serta contoh perintah lsof, pfile, procfiles .pfiles
(ada sejak 2.5 ).sumber
Jika Anda menjalankan Solaris, alternatif untuk
lsof
, yang tidak diinstal secara default dan mungkin tercekik pada ZFS, adalahpfiles
.misalnya:
pfiles /proc/*
sumber
Versi saya, dengan hanya sedikit utilitas yang kurang berjalan:
Memang, ini mungkin tidak menangani semua kasus sudut, tetapi bekerja dalam kasus penggunaan saya.
sumber
Ini harus melakukan trik. Ini akan memberikan semua pemetaan file descriptor kecuali yang:
Jika Anda sudah tahu bahwa Anda hanya peduli dengan pemetaan untuk program tertentu, Anda bisa menggunakan sesuatu yang lebih sesuai:
sumber
Terkadang
lsof
dipasang di/usr/sbin
Jika
/usr/sbin
bukan bagian dari Anda$PATH
, Anda bisa melewatkan perintah bahkan diinstal.Periksa dengan
sumber