我可以在没有外部工具的情况下守护golang进程吗?

时间:2015-01-05 00:56:28

标签: go daemon

我已经看到了许多关于如何守护用Go编写的应用程序的不同建议,包括使用upstart或init.d.为什么不自己做呢?看起来步骤很简单:

  • 分叉并退出父母
  • 更改文件模式掩码
  • 创建唯一的会话ID
  • 更改当前工作目录
  • 关闭文件描述符

source

那么为什么不在你的程序中这样做,而不是依靠第三方软件为你做一个简单的任务呢?

1 个答案:

答案 0 :(得分:1)

直接使用来自Go程序的fork()进行混乱是危险的。基于等效C程序的典型deamonize实现是不安全的。

您可能对以下包使用的方法感兴趣: https://github.com/VividCortex/godaemon