2013-10-10 16 views
18

Ich versuche, eine Java-Prozess mit supervisord zu laufen und bin immer:supervisord mit Verlassen ENOEXEC

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

Der Inhalt start_tester ist:

java -Duser.dir=/var/application/ -cp /var/application/application.jar:/var/application/toepoke.jar com.application.Application 

Als ich das Drehbuch von der Konsole laufen die App wird wie erwartet ausgeführt. Hier ist mein Vorgesetzter Config

[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 

Als ich das Drehbuch von der Konsole ausgeführt ist dies die Ausgabe:

[[email protected] application]# ./start_tester 
20131009 203657: application starting up. 
20131009 203657 (33): version 2.2.3 

Antwort

30

Ihre Datei muss ausführbar sein. Also entweder:

  1. Sie sollten chmod +x es das ausführbare Bit setzen.
  2. Setzen Sie einen Shebang am Anfang der Datei. Das nicht zu haben, hat die ENOEXEC verursacht.

oder

  1. Ändern Sie bitte Ihre Konfigurationsdatei so etwas wie command=sh /var/application/start_tester.
+4

In meinem Fall fehlte Shebang. –