Ошибка супервизора дочерний процесс не был создан

Я создаю bash для запуска скрипта Python start_queue.sh

содержимое start_queue.sh

python /tmp/my_python_script.py & 

Это работает, когда я запускаю его в терминале. Но я хочу управлять им с помощью супервизора, так как у меня уже есть несколько веб-сайтов django, которыми управляет супервизор.

Но я просто получаю ошибку при запуске

supervisor: couldn't exec /tmp/start_queue.sh: ENOEXEC
supervisor: child process was not spawned

Вот как я настраиваю в supervisord

[group:scriptgroup]
programs=script_1

[program:script_1]
command=/tmp/start_queue.sh
directory=/tmp/
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/x.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=50
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
loglevel=info

Супервизором можно управлять процессом бэкгруппы. Что я здесь не так сделал? Пожалуйста помоги.


person Hardy    schedule 18.09.2013    source источник
comment
Сообщение об ошибке, похоже, подразумевает неправильные разрешения.   -  person tripleee    schedule 01.10.2013


Ответы (2)


Добавьте #!/bin/sh в начало скрипта.

person Shekhar    schedule 23.12.2013
comment
иногда работает без этого, а иногда нужно это. какая-то конкретная причина для этого? - person Rakmo; 18.03.2020

Вам нужно выполнить shell script spawned. Spawn означает, что когда вы его убиваете, он не убивает, если не будет набора обстоятельств.

примечания: supervisor — это модуль Python, управляющий обработкой. Чтобы получить ответ, посетите: http://stackful-dev.com/simplify-unix-process-herding-with-supervisor.html

person PersianGulf    schedule 18.09.2013