Go 是否有类似于 NodeJS 的 PM2 的进程管理器?
PM2的基本特征:
编者注:PM2 提供了一种在后台永远运行 NodeJS 应用程序的简单方法,例如用于生产服务器。当然,您可以使用 Linux 操作系统执行此操作,使用并非特定于任何特定编程语言的工具,这些答案很有帮助。由于 Go 可以创建可执行文件,因此您实际上不需要针对此问题的 Go 语言特定解决方案。
Koa*_*ung 19
对于开发,您可能需要进程管理器来监视文件更改并实时重新加载服务器二进制文件。
我已经习惯了Godegansta 的 gin来做这样的 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=always
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=%n
Run Code Online (Sandbox Code Playgroud)
将此文件创建为/etc/systemd/system/my_app.service
,然后运行:
systemctl start my_app.service
Run Code Online (Sandbox Code Playgroud)
会自动启动服务。按照配置,systemd 将始终在停止时重新启动您的进程。
要在机器启动时始终打开它:
systemctl enable my_app.service
Run Code Online (Sandbox Code Playgroud)
如果在第一个start
或之后更改单元文件,则enable
需要运行:
systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)
要查看进程的状态,请运行:
systemctl status my_app.service
Run Code Online (Sandbox Code Playgroud)
要查看进程的 STDOUT,请运行:
journalctl -f -u my_app.service
Run Code Online (Sandbox Code Playgroud)
如需进一步帮助,请阅读手册页。
归档时间: |
|
查看次数: |
6004 次 |
最近记录: |