我正在尝试使用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
它来设置可执行位。ENOEXEC
的原因。要么
command=sh /var/application/start_tester
。在大多数情况下,通常会缺少一个shebang。
- #!/usr/bin/env bash
- #!/bin/bash
- #!/bin/sh
- #!/bin/sh -
将shebang添加到gunicorn_start文件后(如果是DJANGO),请重新启动主管
sudo systemctl enable supervisor
sudo systemctl restart supervisor