Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 302e062

Browse files
authored
Merge pull request #923 from devlights/add-procfs-allprocs
2 parents d6b3a7f + 09406fa commit 302e062

File tree

4 files changed

+81
-0
lines changed

4 files changed

+81
-0
lines changed

examples/procfs/allprocs/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
app

examples/procfs/allprocs/README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# これは何?
2+
3+
[procfs](https://github.com/prometheus/procfs) を使って、/procファイルシステム上の全プロセス情報を取得するサンプルです。
4+
5+
```sh
6+
$ task
7+
task: [default] rm -f ./app
8+
task: [default] go build -o app .
9+
task: [default] ./app
10+
[01] 1: /.supervisor/supervisor
11+
[02] 36: /.supervisor/supervisor
12+
[03] 70: /usr/bin/dash
13+
[04] 78: /ide/node
14+
[05] 90: /usr/bin/bash
15+
[06] 666: /ide/node
16+
[07] 1286: /ide/node
17+
[08] 1952: /ide/node
18+
[09] 1977: /ide/node
19+
[10] 2492: /ide/node
20+
[11] 7471: /home/gitpod/go-packages/bin/gopls
21+
[12] 7483: /home/gitpod/go-packages/bin/gopls
22+
[13] 23327: /ide/node
23+
[14] 42093: /home/gitpod/go-packages/bin/staticcheck
24+
[15] 42113: /home/gitpod/go/bin/go
25+
[16] 42122: /workspace/go/bin/task
26+
[17] 42439: /workspace/try-golang/examples/procfs/allprocs/app
27+
```

examples/procfs/allprocs/Taskfile.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# https://taskfile.dev
2+
3+
version: '3'
4+
5+
tasks:
6+
default:
7+
cmds:
8+
- rm -f ./app
9+
- go build -o app .
10+
- ./app

examples/procfs/allprocs/main.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package main
2+
3+
import (
4+
"log"
5+
6+
"github.com/prometheus/procfs"
7+
)
8+
9+
func main() {
10+
log.SetFlags(0)
11+
12+
if err := run(); err != nil {
13+
log.Fatal(err)
14+
}
15+
}
16+
17+
func run() error {
18+
var (
19+
fs procfs.FS
20+
err error
21+
)
22+
fs, err = procfs.NewFS(procfs.DefaultMountPoint)
23+
if err != nil {
24+
return err
25+
}
26+
27+
var (
28+
procs procfs.Procs // type Procs []Proc
29+
)
30+
procs, err = fs.AllProcs()
31+
if err != nil {
32+
return err
33+
}
34+
35+
var (
36+
drop = func(v string, _ error) string { return v }
37+
)
38+
for i, p := range procs {
39+
log.Printf("[%02d] %7d: %s", i+1, p.PID, drop(p.Executable()))
40+
}
41+
42+
return nil
43+
}

0 commit comments

Comments
 (0)