如何在Ubuntu服务器上连续运行go app

CCa*_*tes 1 linux go

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

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

什么是确保它始终运行的有效方法?对不起,我已经习惯了Apache和Nginx.

另外,部署Go应用程序的最佳做法是什么?我希望所有(最好)所有服务都在同一台服务器上.就像我的开发环境一样.

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

vir*_*tor 5

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

有关快速Upstart的说明,请查看此处,您的服务说明可能只是:

start on runlevel [2345]
stop on runlevel [!2345]
setuid the_username_your_app_runs_as
exec /path/to/your/app --options
Run Code Online (Sandbox Code Playgroud)

对于快速系统描述,请查看此处,您的服务很可能只是:

[Unit]
Description=Your service

[Service]
User=the_username_your_app_runs_as
ExecStart=/path/to/your/app --options

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)