Heroku:"bash:./start.sh:权限被拒绝"

17

我有一个应用程序,其中Procfile设置为运行shell脚本,但是Heroku不会运行该脚本,显示“权限被拒绝”。

web: ./start.sh

#!/usr/bin/env bash
clear;
until node app.js; do
    echo "Server crashed with exit code $?.  Respawning.." >&2
    sleep 1
done

以命令'./start.sh'启动进程
bash: ./start.sh: 权限拒绝
状态从启动中变为崩溃
进程以状态码126退出


文件权限是什么? - AJcodez
在我的本地计算机上?还是在Heroku上? - Nifty255
1个回答

26

要使其工作,start.sh必须是可执行的:

chmod a+x start.sh

如果您不能在文件运行的机器上安排发生这种情况,您可以直接使用bash来调用它;而不是使用./start.sh,使用bash ./start.sh(甚至只使用bash start.sh)。


我运行了这个命令,它只是在文件中sleep 1和done之间添加了一行。我尽管已经提交并推送,但没有成功。我需要以某种方式在Heroku上运行此命令吗? - Nifty255
@Nifty255:是的,在运行文件的机器上,该文件必须具有可执行权限。 - rici
1
那么我如何在Heroku上更改文件的权限?我已经在我的电脑上做过了,但似乎没有什么用。 - Nifty255
@Nifty255:我不知道,这并不是一个真正的编程问题。我在编辑中提供了一种替代方案;你可能想在例如http://serverfault.com/questions/tagged/heroku上问“如何更改Heroku上的权限”问题。 - rici
我在Servefault上找不到你的问题“如何在Heroku上更改权限”... 你的解决方法是什么? - Aamir Mulla
1
@AamirMulla:我没有回答“如何在Heroku上更改权限”的问题。我建议OP在特定的社区中提出那个特定的问题,或许有知识渊博的人会回答那个问题(而不是我)。我所做的是编辑我的回答;你可以通过点击链接编辑于2015年2月14日4:46看到修改内容。 (我在回答中添加了最后一段:“使用 bash start.sh”)。如果你想得到更好的答案,我建议你在serverfault.com上提问 :-) - rici

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接