首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对Golang应用程序的类似PM2的流程管理解决方案?

针对Golang应用程序的类似PM2的流程管理解决方案?
EN

Stack Overflow用户
提问于 2019-09-20 05:15:04
回答 1查看 11.3K关注 0票数 11

Go是否有类似于PM2 for NodeJS的流程管理器?

PM2的基本特性:

  • 无限期地在后台运行应用程序,例如等待请求的服务器。
  • 重新启动时重新启动应用程序。

编者注: PM2提供了一种简单的方法,可以永远在后台运行NodeJS应用程序,例如用于生产服务器。当然,您可以使用Linux操作系统,使用不特定于任何特定编程语言的工具来完成这一任务,而这些答案是有帮助的。因为Go可以创建可执行文件,所以您实际上并不需要一个针对这个问题的特定于Go语言的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-20 06:09:49

发展环境

为了进行开发,您可能需要过程管理器来监视文件更改,并实时重新加载服务器二进制文件。

对于web服务器/ api服务器开发这样的工作,我习惯了戈登斯塔氏病 杜松子酒。还有鲜食反射,也许还有一些 其他

生产环境

我正在使用systemd来管理生产环境中Linux上的Golang应用程序进程。

定义该股

我的单位档案看起来是这样的:

代码语言:javascript
复制
[Unit]

[Install]
WantedBy=multi-user.target

[Service]
ExecStart=/usr/local/bin/<MY_GO_APP>
WorkingDirectory=/home/user/<MY_GO_APP_HOME_DIR>
User=<MY_GO_APP_USER>
Restart=always
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=%n

将此文件创建为/etc/systemd/system/my_app.service,然后运行:

代码语言:javascript
复制
systemctl start my_app.service

会自动启动服务。按照配置,如果进程停止,systemd将始终重新启动您的进程。

通常操作

当机器启动时,让它始终开着:

代码语言:javascript
复制
systemctl enable my_app.service

如果在第一个startenable之后更改单元文件,则需要运行:

代码语言:javascript
复制
systemctl daemon-reload

若要查看进程的状态,请运行:

代码语言:javascript
复制
systemctl status my_app.service

要查看进程的STDOUT,请运行:

代码语言:javascript
复制
journalctl -f -u my_app.service

有关进一步帮助,请阅读手册页

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58022141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档