在 CentOS 7 上将 Go 作为守护进程 Web 服务器运行

问题描述 投票:0回答:1

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

使用 nginx 我所做的就是

$ systemctl start nginx.service
$ systemctl restart nginx.service
$ systemctl stop nginx.service
$ systemctl enable nginx.service
$ systemctl disable nginx.service

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

go
1个回答
0
投票

这不是一个 Go 问题,而是一个系统管理问题。有多种方法可以向 systemd 添加命令(如 这篇博文 <-- discontinued - see alternatives below).

就我个人而言,我更喜欢将应用程序与服务分开,因此我倾向于对经常启动、停止或重新启动的程序使用 supervisord。 Supervisord 的文档非常简单,但本质上您可以创建一个配置文件来描述您想要运行的服务、用于运行它的命令(例如

/path/to/go/binary -flag
)以及您想要如何处理启动、停止、故障恢复,日志记录等....

替代品

免责声明:未阅读或测试

© www.soinside.com 2019 - 2024. All rights reserved.