supervisord 与 ENOEXEC 一起退出

标签 supervisord

我正在尝试使用 supervisord 运行一个 java 进程,并且得到:

couldn't exec /var/application/start_tester: ENOEXEC

start_tester 的内容是:
java -Duser.dir=/var/application/ -cp /var/application/application.jar:/var/application/toepoke.jar com.application.Application

当我从控制台运行脚本时,应用程序按预期运行。这是我的主管配置
[program:application_tester]
directory=/var/application
command=/var/application/start_tester         ; the program (relative uses PATH, can take args)
log_stdout=true             ; if true, log program stdout (default true)
log_stderr=true             ; if true, log program stderr (def false)
logfile=/var/log/application_tester.log

当我从控制台运行脚本时,这是输出:
[root@monitor application]# ./start_tester 
20131009 203657: application starting up.
20131009 203657 (33): version 2.2.3

最佳答案

您的文件需要是可执行的。所以要么:

  • 您应该chmod +x它设置可执行位。
  • 在文件的开头放一个shebang。没有这个是导致 ENOEXEC 的原因.

  • 或者
  • 将您的配置文件修改为类似 command=sh /var/application/start_tester 的内容.
  • 关于supervisord 与 ENOEXEC 一起退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19285666/

    相关文章:

    postgresql - docker CMD 在后台运行supervisord

    django - Celery 进程架构和妖魔化的正确方法

    php - 拉维尔 5.6。在与主管执行工作后停止 worker

    django - 主管、 celery 、Virtualenvwrapper、Django : Could not import django settings even when pythonpath added to environment

    Supervisord:如何在启动命令中使用主机名

    nginx - Tornado 网络 gzip=True 不在主管和 nginx 下工作

    django - Django打印运行服务器日志到文件

    django - 通过主管监督 virtualenv django 应用程序

    python - 如何使用 Python 检查 Celery/Supervisor 是否正在运行

    Supervisord - 程序编号作为参数