2013-10-10 21 views
18

Sto cercando di eseguire un processo Java con supervisord e sto ottenendo:supervisord uscendo con ENOEXEC

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

Il contenuto di start_tester è:

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

Quando eseguo lo script dalla console l'app funziona come previsto. Qui è il mio supervisore 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 

Quando eseguo lo script dalla console questo è l'output:

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

risposta

30

Il file deve essere eseguibile. Quindi:

  1. È necessario chmod +x per impostare il bit eseguibile.
  2. Metti una shebang all'inizio del file. Non avere questo è ciò che ha causato il ENOEXEC.

o

  1. modificare il file di configurazione a qualcosa come command=sh /var/application/start_tester.
+4

Nel mio caso mancava Shebang. –

Problemi correlati