golang 监视进程名是否存在 否则关闭自身程序
可以使用 Golang 的 os 和 os/exec 包来实现监视进程名是否存在,如果不存在则关闭自身程序。
以下是示例代码:
package main
import (
"fmt"
"os"
"os/exec"
"time"
)
func main() {
// 要监视的进程名
processName := "chrome.exe"
// 每秒钟检查一次进程是否存在
for {
cmd := exec.Command("tasklist", "/FI", fmt.Sprintf("IMAGENAME eq %s", processName))
err := cmd.Run()
if err != nil {
fmt.Println("Error:", err)
return
}
// 根据命令执行结果,判断进程是否存在
if cmd.ProcessState.ExitCode() == 0 {
fmt.Printf("%s is running...\n", processName)
} else {
fmt.Printf("%s is not running, exiting...\n", processName)
time.Sleep(time.Second) // 等待一秒钟,让消息打印出来
os.Exit(0) // 关闭自身程序
}
time.Sleep(time.Second) // 等待一秒钟
}
}
上述代码中,使用 exec 包调用 tasklist 命令来获取系统中所有进程的列表,然后根据进程名过滤出我们要监视的进程是否存在。如果进程不存在,则调用 os 包的 Exit 函数关闭自身程序。
需要注意的是,由于 tasklist 命令只能在 Windows 系统上使用,因此上述代码只适用于 Windows 平台。如果要在其他平台上使用类似功能,需要使用不同的命令或方法来获取进程列表
原文地址: https://www.cveoy.top/t/topic/fhqZ 著作权归作者所有。请勿转载和采集!