【发布时间】:2016-07-04 05:54:25
【问题描述】:
我正在使用 upstart 来启动我的 golang 应用程序。我的应用程序文件夹结构是这样的,
web-app/
/app
main.go
我构建的应用程序如下,
$cd /home/ec2-user/go/src/github.com/dineshappavoo/web-app/app/
$go build ./...
它生成了二进制文件app
并将web-app.conf 放在/etc/init/ 文件夹中。这里是 web-app.conf 的内容,
#Web app upstart script
description "start and stop web app"
start on (net-device-up
and local-filesystems
and runlevel [2345])
stop on runlevel [016]
respawn
respawn limit 5 30
console output
script
chdir /home/ec2-user/go/src/github.com/dineshappavoo/web-app/app
exec ./app
end script
当我尝试 sudo initctl list 时,它会将进程列为stop/waiting。我试图开始这个过程
$sudo initctl 启动网络应用程序
它将进程显示为start/running。但它没有启动。
我检查了/var/log/messages 日志。它表明,
init: web-app main process (18740) terminated with status 127
我无法启动该过程。我认为 chdir 存在一些问题。在过去的两天里,我尝试了不同的选择。而且我对新贵还很陌生,但没有运气。有人可以帮我解决这个问题吗?
【问题讨论】:
-
错字
rullevel是真的吗? -
你到底想执行什么? app 不是目录吗?看看这个问题stackoverflow.com/questions/14692843/…
-
啊,这是一个错字。谢谢你找到那个。我解决了这个问题并尝试开始。但仍然面临同样的问题。
-
@Lital - 当我构建应用程序时,它会生成名为 app 的二进制文件。 [我认为这是 golang 特有的]
-
terminated with status 1建议新贵正在运行您的应用程序,好!该应用程序正在崩溃。要验证应用程序现在是否存在问题,请暂时将exec ./app替换为您知道正在运行的基本程序,例如exec sleep 2。重新启动作业应该会导致 /var/log/messages 包含多个web-app main process ended, respawning行。
标签: linux go amazon-ec2 upstart