猿问

在 CentOS 7 上将 Go 作为守护程序网络服务器运行

我正在尝试从 PHP 迁移到 Go 并计划完全删除 nginx。但是我不知道如何在后台将 go http 网络服务器作为守护进程运行,也不知道如何在重新启动时自动启动网络服务器,或者如何终止该进程。


使用 nginx 我所做的就是


$ systemctl start nginx.service

$ systemctl restart nginx.service

$ systemctl stop nginx.service

$ systemctl enable nginx.service

$ systemctl disable nginx.service

这很方便,但似乎我不能用 Go http 服务器来做到这一点。我必须像任何其他 Go 程序一样编译和运行它。对于这些问题,有哪些解决方案?


慕容3067478
浏览 132回答 1
1回答

Cats萌萌

这与其说是 Go 问题,不如说是系统管理问题。有多种方法可以向 systemd 添加命令(如这篇博文)。就我个人而言,我更喜欢将我的应用程序与我的服务分开,因此我倾向于将supervisord用于我的程序,这些程序往往会频繁启动、停止或重新启动。supervisord 的文档非常简单,但基本上你可以创建一个配置文件来描述你想要运行的服务,用于运行它的命令(例如/path/to/go/binary -flag)你想要如何处理启动、停止、故障恢复、日志记录等....
随时随地看视频慕课网APP

相关分类

Go
我要回答