本文实例讲述了golang守护进程用法。分享给大家供大家参考,具体如下:
用node写了一个socket后台服务,可是有时候会挂,node一个异常就game over了,所以写了一个守候.
package main
import (
"log"
"os"
"os/exec"
"time"
)
func main() {
lf, err := os.OpenFile("angel.txt", os.O_CREATE | os.O_RDWR | os.O_APPEND, 0600)
if err != nil {
os.Exit(1)
}
defer lf.Close()
// 日志
l := log.New(lf, "", os.O_APPEND)
for {
cmd := exec.Command("/usr/local/bin/node", "/*****.js")
err := cmd.Start()
if err != nil {
l.Printf("%s 启动命令失败", time.Now().Format("2006-01-02 15:04:05"), err)
time.Sleep(time.Second * 5)
continue
}
l.Printf("%s 进程启动", time.Now().Format("2006-01-02 15:04:05"), err)
err = cmd.Wait()
l.Printf("%s 进程退出", time.Now().Format("2006-01-02 15:04:05"), err)
time.Sleep(time.Second * 1)
}
}
这里还有一个shell实现的. 记得给予执行权限哦,chmod +x you_command
#! /bin/bash while true; do ./you_command done
希望本文所述对大家Go语言程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#cainiaojc.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。