物联网软件
This commit is contained in:
@@ -6,6 +6,7 @@ package main
|
||||
import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type mainProgramStarter struct{}
|
||||
@@ -25,3 +26,29 @@ func (s *mainProgramStarter) Start(targetExe string) error {
|
||||
// Linux 下:先保持最简单,保证能跑
|
||||
return cmd.Start()
|
||||
}
|
||||
|
||||
// 判断进程是否在运行
|
||||
func (s *mainProgramStarter) IsProcessRunning(pid int) (bool, error) {
|
||||
if pid <= 0 {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
procPath := "/proc/" + strconv.Itoa(pid)
|
||||
_, err := os.Stat(procPath)
|
||||
if err == nil {
|
||||
return true, nil
|
||||
}
|
||||
|
||||
if os.IsNotExist(err) {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
// 其他错误(例如权限问题)
|
||||
return false, err
|
||||
}
|
||||
|
||||
// 杀掉进程
|
||||
func (l *mainProgramStarter) KillProcess(pid int) error {
|
||||
cmd := exec.Command("kill", "-9", strconv.Itoa(pid))
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user