我为ubuntu编写了一个upstart脚本,手动或在启动时启动我的node.js服务器。但它始终以状态127结束,我无法找到有关出错的更多信息。如果我手动执行它然后它工作,我也测试它在ubuntu 12.10,它也工作...它只能无法在ubuntu 10.04上工作,这是我正在使用的生产服务器。
剧本:
description ""
author ""
start on started mountall
stop on shutdown
respawn
respawn limit 20 5
# Max open files are @ 1024 by default. Bit few.
limit nofile 32768 32768
env HOME=/home/projects/<project_name>/data/current
script
export HOME=$HOME
chdir $HOME
exec sudo -u <user_to_launch_the_script> /usr/bin/node /home/projects/<project_name>/data/current/server.js 2>&1 >> /var/log/node.log
end script
任何想法在哪里可以找到有关状态127的更多信息?或者我如何解决这个问题?我查看了/var/log/daemon.log和/var/log/syslog.log ..但没有相关信息,除了主进程(29520)以状态127&#39;终止。 / p> 亲切的问候,
大安
答案 0 :(得分:11)
127 in bash表示:“命令未找到”,illegal_command,$ PATH可能出现问题或输入错误。
来源:http://tldp.org/LDP/abs/html/exitcodes.html
这可能是服务器故障的问题,因为它与bash有关,但这个问题/答案可能会对你有所帮助:
https://serverfault.com/questions/277706/cron-fails-with-exit-status-127
答案 1 :(得分:0)
有相同的错误消息,在/usr/bin/env: node: No such file or directory
失败的自定义启动日志中跟踪它,这是我的修复:
答案 2 :(得分:0)
有这个问题。我正在ubuntu服务器14.04中使用gunicorn部署web应用程序。 将核心指令移动到bash脚本。并记住使脚本可执行。我忽略了使bash脚本可执行,所以我得到了127。
description "Gunicorn app running myproject"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
setuid <user>
setgid <group>
exec bash /path/to/bash/script/
然后是我的bash脚本
#!/bin/bash
# description "bash script that handles loading env and running gunicorn"
# load up the project's virtualenv
source /path/to/virtualenv/bin/activate
# minimal settings
exec gunicorn app:app