为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
拉莫斯之舞 2021-10-25 16:46:36
似乎无法在这里找到直接答案。我不确定是否应该将 ./myBinary 作为 Cron 进程运行,或者是否应该运行“go run myapp.go”确保它始终运行的有效方法是什么?抱歉,我习惯了 Apache 和 Nginx。部署 Go 应用程序的最佳实践是什么?我希望所有内容(最好)都在同一台服务器上提供服务。就像我的开发环境一样。我读过一些使用 S3 的东西,但是,我真的不想使用 S3。
查看完整描述

3 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

使用您的 init 进程提供的功能。您可能正在使用 Systemd 或 Upstart 运行系统。它们都有非常简单的服务描述,可以确保您的应用程序以正确的权限运行,在出现任何故障时重新启动,并且输出得到正确处理。


对于快速新贵描述看这里,您的服务描述可能只是:


start on runlevel [2345]

stop on runlevel [!2345]

setuid the_username_your_app_runs_as

exec /path/to/your/app --options

要快速了解Systemd 描述,请看这里,您的服务可能只是:


[Unit]

Description=Your service


[Service]

User=the_username_your_app_runs_as

ExecStart=/path/to/your/app --options


[Install]

WantedBy=multi-user.target


查看完整回答
反对 回复 2021-10-25
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

您可能想在此处使用屏幕等虚拟终端实用程序。例子:


screen -S myapp # create screen with name myapp

cd ... # to your app directory

go run myapp.go # or go install and then ./myappfrom go bin dir

Ctrl-a+d # to go out of screen

如果要返回屏幕:


screen -r myapp

编辑:当您离开终端时,此解决方案将保留该过程,但在崩溃时不会重新启动它。


查看完整回答
反对 回复 2021-10-25
  • 3 回答
  • 0 关注
  • 260 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信