golang守护进程用法示例
2018-09-22 01:14
本文实例讲述了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 {
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语言程序设计有所帮助。