猿问

如何在 Ubuntu 服务器上连续运行 Go 应用程序

似乎无法在这里找到直接答案。

我不确定是否应该将 ./myBinary 作为 Cron 进程运行,或者是否应该运行“go run myapp.go”

确保它始终运行的有效方法是什么?抱歉,我习惯了 Apache 和 Nginx。

部署 Go 应用程序的最佳实践是什么?我希望所有内容(最好)都在同一台服务器上提供服务。就像我的开发环境一样。

我读过一些使用 S3 的东西,但是,我真的不想使用 S3。


拉莫斯之舞
浏览 261回答 3
3回答

喵喵时光机

使用您的 init 进程提供的功能。您可能正在使用 Systemd 或 Upstart 运行系统。它们都有非常简单的服务描述,可以确保您的应用程序以正确的权限运行,在出现任何故障时重新启动,并且输出得到正确处理。对于快速新贵描述看这里,您的服务描述可能只是:start on runlevel [2345]stop on runlevel [!2345]setuid the_username_your_app_runs_asexec /path/to/your/app --options要快速了解Systemd 描述,请看这里,您的服务可能只是:[Unit]Description=Your service[Service]User=the_username_your_app_runs_asExecStart=/path/to/your/app --options[Install]WantedBy=multi-user.target

慕的地8271018

您可能想在此处使用屏幕等虚拟终端实用程序。例子:screen -S myapp # create screen with name myappcd ... # to your app directorygo run myapp.go # or go install and then ./myappfrom go bin dirCtrl-a+d # to go out of screen如果要返回屏幕:screen -r myapp编辑:当您离开终端时,此解决方案将保留该过程,但在崩溃时不会重新启动它。
随时随地看视频慕课网APP

相关分类

Go
我要回答