5 Star 1 Fork 0

hilaoyu / go-basic-utils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
utilCmd.go 1.72 KB
一键复制 编辑 原始数据 按行查看 历史
hilaoyu 提交于 2023-09-28 17:18 . update cmd hasRun
package utilCmd
import (
"gitee.com/hilaoyu/go-basic-utils/utilStr"
"gitee.com/hilaoyu/go-basic-utils/utils"
"os/exec"
"strings"
)
func buildExec(name string, args ...string) *exec.Cmd {
cmdExec := exec.Command(name, args...)
if "windows" == utils.RunningOs("windows") {
cmdExec = exec.Command("cmd", "/c", cmdExec.String())
}
return cmdExec
}
func RunCommand(wait bool, name string, args ...string) (string, error) {
cmdExec := buildExec(name, args...)
///fmt.Println("Running cmd:" + cmdExec.String())
if wait {
result, err := cmdExec.CombinedOutput()
/*if err != nil {
return result, err
}*/
return strings.TrimSpace(string(result)), err
} else {
err := cmdExec.Start()
return "", err
}
}
// 根据进程名判断进程是否运行
func HasRunning(serverName string, theads ...int) bool {
checkTheads := 1
if len(theads) > 0 {
checkTheads = theads[0]
}
if checkTheads <= 0 {
checkTheads = 1
}
cmd := "sh"
cmdArgs := []string{"-c", "ps -ef --cols 1000 | grep \"" + serverName + "\" | grep -v grep"}
//filepath.Join(utils.GetSelfPath(),"hasRunSuricata.sh")
if "windows" == utils.RunningOs("windows") {
cmd = `tasklist /fi "imagename eq ` + serverName + `" /FO TABLE /NH`
cmdArgs = []string{}
}
result, err := RunCommand(true, cmd, cmdArgs...)
if err != nil {
return false
}
if "windows" == utils.RunningOs("windows") {
return utilStr.StrIsStartWith(result, "信息: 没有运行的任务匹配指定标准")
}
results := strings.Split(result, "\n")
return len(results) >= checkTheads
}
//根据进程名称获取进程ID
/*func GetPid(serverName string) (string, error) {
a := `ps ux | awk '/` + serverName + `/ && !/awk/ {print $2}'`
pid, err := RunCommand(a)
return pid , err
}*/
Go
1
https://gitee.com/hilaoyu/go-basic-utils.git
git@gitee.com:hilaoyu/go-basic-utils.git
hilaoyu
go-basic-utils
go-basic-utils
5f3621a25f8a

搜索帮助

53164aa7 5694891 3bd8fe86 5694891