golang守护进程用法示例

 更新时间:2016年07月22日 16:21:14   作者:dotcoo  
这篇文章主要介绍了golang守护进程用法,结合实例形式分析了Go语言守护进程的具体实现与使用技巧,需要的朋友可以参考下

本文实例讲述了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语言程序设计有所帮助。

您可能感兴趣的文章:

相关文章

  • golang中defer执行时机的案例分析

    golang中defer执行时机的案例分析

    这篇文章主要来通过一些案例和大家一起探讨一下golang中defer的执行时机,文中的示例代码讲解详细,对我们深入了解golang有一定的帮助,感兴趣的可以跟随小编一起学习一下
    2023-11-11
  • Golang实践之Error创建和处理详解

    Golang实践之Error创建和处理详解

    在 C#、Java 等语言中常常使用 try...catch的方式来捕获异常,但是在Golang 对于错误处理有不同的方式,像网上也有很多对 error 处理的最佳实践的文章,其中很多其实就是对 error 的统一封装,使用规范进行约束,本文主要是记录自己对处理 Error 的一些认识和学习
    2023-09-09
  • go语言规范RESTful API业务错误处理

    go语言规范RESTful API业务错误处理

    这篇文章主要为大家介绍了go语言规范RESTful API业务错误处理方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • go并发利器sync.Once使用示例详解

    go并发利器sync.Once使用示例详解

    这篇文章主要为大家介绍了go并发利器sync.Once使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 如何在 ubuntu linux 上配置 go 语言的 qt 开发环境

    如何在 ubuntu linux 上配置 go 语言的 qt 开发环境

    这篇文章主要介绍了如何在 ubuntu linux 上配置 go 语言的 qt 开发环境,本文分步骤通过实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Go语言中转换JSON数据简单例子

    Go语言中转换JSON数据简单例子

    这篇文章主要介绍了Go语言中转换JSON数据简单例子,本文先定义了一个结构体,然后把JSON绑定到结构体上实现读取,需要的朋友可以参考下
    2014-10-10
  • Golang Configor配置文件工具的使用详解

    Golang Configor配置文件工具的使用详解

    Configor是一个支持 yaml、json、toml、shell 的配置文件工具,这篇文中主要为大家详细介绍了Configor的具体使用,感兴趣的小伙伴可以学习一下
    2023-08-08
  • 手把手教你导入Go语言第三方库

    手把手教你导入Go语言第三方库

    本文主要介绍了手把手教你导入Go语言第三方库,通过导入gin包来深入学习,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Golang中实现类似类与继承的方法(示例代码)

    Golang中实现类似类与继承的方法(示例代码)

    这篇文章主要介绍了Golang中实现类似类与继承的方法,Go语言中通过方法接受者的类型来决定方法的归属和继承关系,本文通过示例代码讲解的非常详细,需要的朋友可以参考下
    2024-04-04
  • Go项目在GoLand中导入依赖标红问题的解决方案

    Go项目在GoLand中导入依赖标红问题的解决方案

    这篇文章主要介绍了Go项目在GoLand中导入依赖标红问题的解决方案,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-06-06

最新评论