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基础之字符串与int、int64类型互相转换

    golang基础之字符串与int、int64类型互相转换

    这篇文章主要给大家介绍了关于golang基础之字符串与int、int64类型互相转换的相关资料,在Go语言中string转int是一项常见的操作,需要的朋友可以参考下
    2023-07-07
  • 详细介绍Go语言之数组与切片

    详细介绍Go语言之数组与切片

    这篇文章介绍Go语言之数组与切片,数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可是任意的原始类型如整形、字符串或自定义类型。切片是数组的一个引用,因此切片是引用类型,在进行传递时,遵守引用传递的机制,下面我们就来详细了解一下该内容
    2021-10-10
  • Golang pipe在不同场景下远程交互

    Golang pipe在不同场景下远程交互

    这篇文章主要介绍了Golang pipe在不同场景下远程交互,pipe实现从一个进程重定向至另一个进程,它是双向数据通道,用于实现进行间通信
    2023-03-03
  • go结构体嵌套的切片数组操作

    go结构体嵌套的切片数组操作

    这篇文章主要介绍了go结构体嵌套的切片数组操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Go中函数的使用细节与注意事项详解

    Go中函数的使用细节与注意事项详解

    在Go语言中函数可是一等的(first-class)公民,函数类型也是一等的数据类型,下面这篇文章主要给大家介绍了关于Go中函数的使用细节与注意事项的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 详解Go语言中init的使用与常见应用场景

    详解Go语言中init的使用与常见应用场景

    Go 中有一个特别的 init() 函数,它主要用于包的初始化,这篇文章将以此为主题介绍 Go 中 init() 函数的使用和常见使用场景,希望对大家有所帮助
    2024-02-02
  • Golang中指针的使用详解

    Golang中指针的使用详解

    Golang是一门支持指针的编程语言,指针是一种特殊的变量,存储了其他变量的地址。通过指针,可以在程序中直接访问和修改变量的值,避免了不必要的内存拷贝和传递。Golang中的指针具有高效、安全的特点,在并发编程和底层系统开发中得到广泛应用
    2023-04-04
  • Go语言中工作池的原理与实现

    Go语言中工作池的原理与实现

    工作池是一种并发编程模式,它使用一组固定数量的工作线程来执行任务队列中的工作单元,本文将介绍工作池的工作原理,并通过代码示例演示其在实际应用中的用途,有需要的可以参考下
    2023-10-10
  • 解决goxorm无法更新值为默认值的问题

    解决goxorm无法更新值为默认值的问题

    这篇文章主要介绍了解决goxorm无法更新值为默认值的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Golang WaitGroup 底层原理及源码解析

    Golang WaitGroup 底层原理及源码解析

    WaitGroup 是 Golang 中最常见的并发控制技术之一,它的作用我们可以简单类比为其他语言中多线程并发控制中的 join(),这篇文章主要介绍了Golang WaitGroup 底层原理及源码详解,需要的朋友可以参考下
    2023-04-04

最新评论