`
DarkWingBoy
  • 浏览: 50271 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

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
分享到:
评论

相关推荐

    golang守护进程用法示例

    ### Golang守护进程用法详解 #### 一、引言 在现代软件开发中,守护进程(Daemon)是一种常见的后台运行程序,它们通常用于提供持续的服务而不会干扰用户的正常操作。Golang作为一种高效的编程语言,提供了简洁的...

    使用golang开发的兼容linux、windows、mac的守护程序.zip

    本教程将围绕“使用Golang开发的兼容Linux、Windows、Mac的守护程序”这一主题,深入探讨如何利用Go语言来实现跨平台的守护进程开发。 首先,让我们理解守护进程(Daemon)的概念。在操作系统中,守护进程是一种在...

    dcrd, 在( golang ) 中,Decred守护进程.zip

    dcrd, 在( golang ) 中,Decred守护进程 dcrddcrd是一个Decred完全 node 实现,用 go ( golang ) 编写。它充当 Decred cryptocurrency的链守护进程。 dcrd维护整个Decred的过去事务分类帐,并允许将事务传送到世界上...

    gund_2021_golang_rar.rar

    在本项目中,我们关注的是一个使用Go语言(Golang)编写的Windows系统后台服务程序,该服务的主要功能是24小时全天候监控指定的进程(即“守护进程”),在发现服务进程宕机时自动进行重启操作,并且能够记录相关的...

    ole_golang_tryout_daemon:玩跨平台守护进程

    这个项目"ole_golang_tryout_daemon"就是对Go语言实现跨平台守护进程的一个尝试。 项目名称"ole_golang_tryout_daemon"表明它是一个实验性的项目,旨在测试和验证如何在Go中实现跨平台的守护进程功能。"ole_golang_...

    Go-HyperContainer守护进程

    Go-HyperContainer守护进程是基于Go语言开发的一个高级容器管理工具,它被设计用来提供轻量级的虚拟化解决方案,以提升容器的隔离性和安全性。HyperContainer守护进程(hyperd)是这个系统的核心组件,负责管理和...

    go-crond:用golang编写的Cron守护程序(例如,在Docker映像中的用法)

    用golang编写的cron守护程序 受启发 使用 Docker映像 在 webdevops/go-crond:alpine (基于alpine ) webdevops/go-crond:ubuntu (基于ubuntu:latest ) webdevops/go-crond:debian (基于debian:stable-slim )...

    Go-gocode-Go编程语言的一个代码自动补全守护进程

    Go-gocode是一个专门为Go编程语言设计的代码自动补全工具,它作为一个守护进程运行,为开发者提供实时的代码补全建议,极大地提升了编码效率。在Go语言的开发环境中,gocode是一个非常重要的辅助工具,特别是在编写...

    守护程序:与Go(golang)服务一起使用的守护程序包

    守护进程与Go(golang)服务一起使用的守护程序包例子最简单的示例(只需将self安装为守护程序) package mainimport ( "fmt" "log" "github.com/takama/daemon")func main () { service , err := daemon ....

    zero-downtime-daemon:Golang中可配置的零停机守护程序(如nginx)框架

    可配置的零停机守护进程(TCP / HTTP / FCGI)框架使用golang编写。 它只需要集成对gozd.Daemonize()的一个简单调用即可。 然后您将获得: 在绝对零停机时间的情况下升级二进制文件/服务。 高可用性! 在同一...

    go-daemon:用于在golang中编写系统守护程序的库

    守护进程 用于在Go中编写系统守护程序的库。 现在仅支持基于UNIX的操作系统(不支持Windows)。 但是该库仅在Linux和OSX上进行了测试,因此,如果您有能力在其他平台上进行测试,请给我反馈(#26)。 请随时向我...

    Go-Golang笔记

    - **Docker**:Docker的守护进程就是用Go编写的,体现了Go在系统编程上的优势。 - **Kubernetes**:Kubernetes的API服务器和控制器大量使用了Go,得益于其并发和性能特性。 - **Gin框架**:Gin是一个基于Go的web...

    ergonomadic:go irc 守护进程

    ergonomadic是一个基于Go语言编写的IRC(Internet Relay Chat)守护进程。IRC是一种实时通信协议,主要用于在线聊天、协作和信息分享。这个项目可能是杰里米的遗产,他在社区中留下了深刻的印记,他的贡献被人们怀念...

    pmon2:golang进度管理工具(golang流程管理器)

    pmon2 golang进程管理工具(golang进程管理器),专门用于go常驻进程管理(守护程序管理器)启动进程sudo pmon2 run [. /二进制进程文件] [参数1 ] ...介绍Go官方一直没有提供任何进度管理工具,对于Go服务的部署,...

    golang 配置中心-goconfd.zip

    4. **守护进程模式**:goconfd可以作为守护进程运行,持续监听配置变化,确保配置始终是最新的。 5. **安全与权限**:goconfd可以通过认证和授权机制保护配置的安全,避免未经授权的访问和修改。 **使用goconfd** ...

    graid:Graid 是一个图像代理守护进程

    **Graid:图像代理守护进程详解** Graid是一款基于Golang开发的图形和图像处理代理守护程序,旨在为用户提供高效、便捷的图像管理和处理服务。它通过代理模式工作,允许用户在后台批量处理图像,如缩放、转换格式、...

    hexdisptpmd:六边形RGB显示的控制守护进程

    【标题】"hexdisptpmd:六边形RGB显示的控制守护进程"涉及的是一个用Go语言编写的后台服务程序,它主要用于实现六边形的RGB颜色显示控制。这个程序设计的目的是为了以一种独特的方式展示RGB色彩,通过六边形的布局来...

    golang-seccomp:为libseccomp进行绑定

    此外,任何对系统调用有严格控制需求的软件,如服务器守护进程、安全敏感的应用,都可以考虑使用Golang-seccomp。 七、未来展望 随着Go语言和libseccomp的不断发展,Golang-seccomp将持续优化,提供更完善的接口和...

    wiregarden:一个代理守护进程,用于通过 gRPC 配置 WireGuard 对等点

    一个代理守护进程,用于通过配置对等。 该项目目前正在开发中,只是一个 PoC 阶段。 有可能在没有通知的情况下更改一切。 用法 gRPC 服务器 $ wiregarden-server --port $PORT 注意:如果您遇到类似operation not...

Global site tag (gtag.js) - Google Analytics