golang守护进程
在golang中可以使用os包中的StartProcess函数创建守护进程。
具体步骤如下:
- 创建一个结构体,包含需要执行的命令和参数。
cmd := exec.Command("command", "arg1", "arg2")
- 设置进程为守护进程,通过设置进程的属性。
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout, os.Stderr},
}
- 启动守护进程。
proc, err := os.StartProcess(cmd.Path, cmd.Args, attr)
if err != nil {
log.Fatal(err)
}
- 等待守护进程退出。
_, err = proc.Wait()
if err != nil {
log.Fatal(err)
}
完整代码示例:
package main
import (
"log"
"os"
"os/exec"
)
func main() {
cmd := exec.Command("sleep", "10")
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout, os.Stderr},
}
proc, err := os.StartProcess(cmd.Path, cmd.Args, attr)
if err != nil {
log.Fatal(err)
}
_, err = proc.Wait()
if err != nil {
log.Fatal(err)
}
}
以上代码将会创建一个名为sleep的守护进程,并执行10秒后退出
原文地址: https://www.cveoy.top/t/topic/cHue 著作权归作者所有。请勿转载和采集!