以下の内容はhttps://devlights.hatenablog.com/entry/2025/05/16/073000より取得しました。


Goメモ-576 (procfsを利用して自プロセス情報を取得)(procfs.FS, Self)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。

Linux上でCPUやメモリやプロセスの情報を取得したりして処理する必要があったので、ちょっとライブラリを探してみたら

github.com

という便利なライブラリが見つかりました。/procファイルシステムの情報を扱いやすくしてくれます。

とても便利だったので、自分用に使い方のメモ残しておこうと思います。

サンプル(自プロセス情報)

main.go

package main

import (
    "log"

    "github.com/prometheus/procfs"
)

func main() {
    log.SetFlags(0)

    if err := run(); err != nil {
        log.Fatal(err)
    }
}

func run() error {
    var (
        p   procfs.Proc
        err error
    )
    p, err = procfs.Self()
    if err != nil {
        return err
    }

    var (
        cmdline []string
    )
    cmdline, err = p.CmdLine()
    if err != nil {
        return err
    }

    log.Printf("[Self] pid=%d, cmdline=%v", p.PID, cmdline)

    return nil
}

実行結果

$ task
task: [default] rm -f ./app
task: [default] go build -o app .
task: [default] ./app
[Self] pid=21966, cmdline=[./app]
task: [default] ./app hello world 1 2 3 4 5
[Self] pid=21972, cmdline=[./app hello world 1 2 3 4 5]

参考情報

try-golang/examples/procfs/self at main · devlights/try-golang · GitHub

Goのおすすめ書籍


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。




以上の内容はhttps://devlights.hatenablog.com/entry/2025/05/16/073000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14