golang编写一个并发重启docker容器的小程序
package main
import (
"flag"
"os/exec"
"time"
)
var command = flag.String("command", "", "command")
func main() {
flag.Parse()
for i := 0; i < flag.NArg(); i++ {
go restartService(flag.Arg(i))
}
time.Sleep(1*time.Second)//主线程sleep1秒,是为了保证上面的循环执行完前主程序不退出,如果循环未完成主程序就结束,可以将时间调长
}
func execCommand(commandName string, params []string) bool {
cmd := exec.Command(commandName, params...)
cmd.CombinedOutput()
return true //不考虑执行成功与否
}
func restartService(service string) {
command := "docker"
params := []string{"restart", service}
execCommand(command, params)
}
//使用flag包,用于构建命令行程序
//使用os/exec包,用于运行外部命令