适用于 Golang 应用程序的类似 PM2 的流程管理解决方案?

Go 有类似于 NodeJS PM2 的进程管理器吗?

PM2.5的基本特点:

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

  • 重新启动后重新启动应用程序。

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


饮歌长啸
浏览 161回答 1
1回答

慕田峪9158850

开发环境对于开发,您可能需要进程管理器来监视文件更改并实时重新加载服务器二进制文件。我习惯使用Godegansta 的 杜松子酒来完成 Web 服务器/API 服务器开发的此类工作。还有新鲜的、条件反射的,或许还有 其他一些。生产环境我正在生产环境中使用 systemd 来管理 Linux 上的 Golang 应用程序进程。定义单位我的单元文件如下所示:[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=alwaysRestartSec=5StandardOutput=syslogStandardError=syslogSyslogIdentifier=%n创建此文件/etc/systemd/system/my_app.service,然后运行:systemctl start my_app.service会自动启动该服务。根据配置,如果进程停止,systemd 将始终重新启动您的进程。日常操作要在机器启动时使其始终打开:systemctl enable my_app.servicestart如果您在第一个或之后更改单元文件enable,则需要运行:systemctl daemon-reload要查看进程的状态,请运行:systemctl status my_app.service要查看进程的 STDOUT,请运行:journalctl -f -u my_app.service
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go