Go是否有类似于PM2 for NodeJS的流程管理器?
PM2的基本特性:
编者注: PM2提供了一种简单的方法,可以永远在后台运行NodeJS应用程序,例如用于生产服务器。当然,您可以使用Linux操作系统,使用不特定于任何特定编程语言的工具来完成这一任务,而这些答案是有帮助的。因为Go可以创建可执行文件,所以您实际上并不需要一个针对这个问题的特定于Go语言的解决方案。
发布于 2019-09-20 06:09:49
发展环境
为了进行开发,您可能需要过程管理器来监视文件更改,并实时重新加载服务器二进制文件。
对于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将此文件创建为/etc/systemd/system/my_app.service,然后运行:
systemctl start my_app.service会自动启动服务。按照配置,如果进程停止,systemd将始终重新启动您的进程。
通常操作
当机器启动时,让它始终开着:
systemctl enable my_app.service如果在第一个start或enable之后更改单元文件,则需要运行:
systemctl daemon-reload若要查看进程的状态,请运行:
systemctl status my_app.service要查看进程的STDOUT,请运行:
journalctl -f -u my_app.service有关进一步帮助,请阅读手册页。
https://stackoverflow.com/questions/58022141
复制相似问题