发表评论
可以使用github.com/mitchellh包来检测特定的进程是否正在运行。下面是一个示例代码:
package main
import (
"fmt"
"github.com/mitchellh/go-ps"
)
func main() {
processName := "your_program.exe" // 要检测的进程名
processes, err := ps.Processes()
if err != nil {
fmt.Println("获取进程列表出错:", err)
return
}
for _, process := range processes {
if process.Executable() == processName {
fmt.Printf("进程 %s 正在运行\n", processName)
return
}
}
fmt.Printf("进程 %s 未运行\n", processName)
}
在上面的代码中,将your_program.exe替换成要检测的进程名。通过调用ps.Processes()函数获取当前系统中的进程列表。然后遍历进程列表,通过process.Executable()方法获取进程的可执行文件名,与要检测的进程名进行比较。如果找到匹配的进程名,则表示进程正在运行;如果没有找到匹配的进程名,则表示进程未运行。根据检测结果输出相应的信息。