, ,

Go lang - process

Une lib qui marche autant pour windows et GNU/Linux

package main
 
import (
	"fmt"
	"github.com/shirou/gopsutil/v4/process"
)
 
func main() {
	proceses_list, _ := process.Processes()
 
	for _, p := range proceses_list {
		processName, _ := p.Name()
		fmt.Printf("PID:%v ; %v\n", p.Pid, processName)
	}
}
$ wine main.exe 
PID:32 ; main.exe
PID:56 ; services.exe
PID:68 ; winedevice.exe
PID:104 ; plugplay.exe
PID:112 ; explorer.exe
PID:136 ; svchost.exe
PID:164 ; winedevice.exe
PID:252 ; rpcss.exe
PID:288 ; conhost.exe

Term / Kill

	proceses_list, _ := process.Processes()
 
	for _, p := range proceses_list {
		processName, _ := p.Name()
 
		if processName == "sleep" {
			p.Kill()
		}
		if processName == "cmd.exe" {
			p.Kill()
		}
	}

FIXME