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
のようなものに変更します。ほとんどの場合、シバンは通常欠落しています。
- #!/usr/bin/env bash
- #!/bin/bash
- #!/bin/sh
- #!/bin/sh -
Shebangをgunicorn_startファイルに追加したら(Djangoの場合)、スーパーバイザーを再起動します
Sudo systemctl enable supervisor
Sudo systemctl restart supervisor