web-dev-qa-db-ja.com

lsofとfuser-uvmの違いは何ですか

どちらも、使用しているファイルの数を示しています。

しかし、どちらも異なる結果を示しています。

root@Host [~]# lsof /home4
root@Host [~]# lsof /home2
root@Host [~]# lsof /home4

次に得た

fuser -uvm /home4

                     root       2621 Frce. (root)crond
                     root       2635 Frce. (root)atd
                     root       4554 frce. (root)S99firstboot
                     root       4768 .rce. (root)firstboot
                     root       6533 .rce. (root)setup
                     root      11042 Frce. (root)leechprotect
                     root      11049 Frce. (root)httpd
                     root      17885 Frce. (root)httpd
                     root      18163 .rce. (root)sshd
                     root      18184 .rce. (root)bash
                     nobody    18619 Frce. (nobody)httpd
                     nobody    18679 Frce. (nobody)httpd
                     nobody    18812 Frce. (nobody)httpd
                     nobody    18821 Frce. (nobody)httpd
                     nobody    18841 Frce. (nobody)httpd
                     nobody    18843 Frce. (nobody)httpd
                     nobody    18850 Frce. (nobody)httpd
                     nobody    18869 Frce. (nobody)httpd
                     nobody    18885 Frce. (nobody)httpd
                     nobody    18901 Frce. (nobody)httpd
                     nobody    18914 Frce. (nobody)httpd
                     root      18932 .rc.. (root)flush-7:0
                     root      30728 Frce. (root)cphulkd
                     root      30756 Frce. (root)cpsrvd-ssl
                     root      30806 Frce. (root)cpdavd
                     root      30833 .rce. (root)queueprocd
                     root      30904 Frce. (root)tailwatchd
                     root      30913 Frce. (root)cpanellogd

どこが間違っていたのですか?

5
user4951

2つの使用法は異なります。

lsofの場合、特定のパスでのみ開いているファイルを表示するには、各パスの前に--を置きます

lsof -- /home4
lsof -- /home4 -- /home2

lsofは、パスを含む開いているすべてのファイルを表示します。

一方、fuserの場合は、指定したファイルを開くプロセスを表示します。

fuser -uv <filename> 

特定のパスにアクセスするプロセスを表示するには、-mを使用します

fuser -uvm /home3

fuserは、特定のファイルを開いているプロセスIDを識別するのに役立ちます。

lsofは、特定のプロセスによって開かれたすべてのファイルを見つけるのに役立ちます。

9
John Siu

これは100%正しくありません。文字列「-」は、オプションの後、パスのリストの前に1回だけ使用されます。

lsof [オプション] [-] [名前]

次のコマンド

lsof-/home4-/home2

「-」という名前のファイルが現在のディレクトリに存在しない限り、エラーが発生します。

これは大丈夫なはずです

lsof-/home4/home2

一般に、「-」は「オプションの終わり」を意味し、シェルによって使用されます。したがって、ハイフンで始まるパラメータ(ファイル名など)を使用する場合は、「-」を使用して、パラメータが(無効な)オプションフラグとして渡されないようにする必要があります。パラメータとして変換されます。

1
javijee