関連記事
ポート番号からプロセスを探す (linux, lsof) - いろいろ備忘録日記
ポート番号からプロセスを探す(2) (linux, fuser) - いろいろ備忘録日記
概要
以下、自分用のメモです。いつも使いたいときに忘れているので、ここにメモメモ。。。
特定のファイルを握っているプロセスを知りたいときって、結構あります。
関連記事で使ったfuserコマンドを使って調べられます。
その場合は、以下のように fuser コマンドを使います。
$ fuser -v /path/to/file
サンプル
以下、Gitpodで試した結果です。
何でも良いので、ファイルを握り続けるプログラムを作成
package main import ( "os" "os/signal" ) func main() { f, err := os.Open("test.txt") if err != nil { panic(err) } defer f.Close() sigCh := make(chan os.Signal, 1) signal.Notify(sigCh, os.Interrupt) <-sigCh }
起動して、fuser コマンドで確認してみます。
$ ./app & [1] 3534 $ fuser -v test.txt USER PID ACCESS COMMAND /home/gitpod/playground/app/test.txt: dev 3534 f.... app
test.txtを握っているのは app って名前のプロセスですって出てますね。
参考情報
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。