Процесс супервизора умирает при выходе из SSH

296
ericbdevil

Я пытаюсь настроить Supervisord на сервере RHEL, где у меня нет доступа с правами root. Когда я SSH подключаюсь к серверу и запускаю supervisord, кажется, что все работает правильно: supervisord и две программы, которые он запускает, не появляются, когда я запускаю ps, но появляются, когда я запускаю ps -A. Я вижу выходные данные программ, отчеты supervisorctl о том, что они запущены, и т. Д. Однако, как только я выйду из сеанса SSH, supervisord и две клиентские программы перестают работать, больше не отображаются под ps -A и т. Д. В файле журнала супервизора нет событий с момента выхода из сеанса SSH, и я запускаю супервизор с nodaemon = false в файле конфигурации (см. Ниже). Что-то я делаю неправильно или неправильно установил файл конфигурации? Дайте мне знать, если нужны дополнительные детали.

Команда, которую я использую для запуска супервизора:

/home/foo/.local/bin/supervisord 

Выход ps -f:

UID PID PPID C STIME TTY TIME CMD foo 1 0 0 09:11 ? 00:00:00 -jailshell foo 53 1 0 09:11 ? 00:00:00 ps -f  [unix_http_server] file=/tmp/supervisor.sock ; the path to the socket file  [supervisord] logfile=/home/foo/logs/supervisord.log ; main log file; default  $CWD/supervisord.log logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB logfile_backups=10 ; # of main logfile backups; 0 means none, default 10 loglevel=trace ; log level; default info; others: debug,warn,trace pidfile=/home/foo/.local/supervisord.pid ; supervisord pidfile; default supervisord.pid nodaemon=false ; start in foreground if true; default false minfds=50 ; min. avail startup file descriptors; default 1024 minprocs=25 ; min. avail process descriptors;default 200 directory=/home/foo/foo_bar/ ; default is not to cd during start  ; The rpcinterface:supervisor section must remain in the config file for ; RPC (supervisorctl/web interface) to work. Additional interfaces may be ; added by defining them in separate [rpcinterface:x] sections.  [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface  ; The supervisorctl section configures how supervisorctl will connect to ; supervisord. configure it match the settings in either the unix_http_server ; or inet_http_server section.  [supervisorctl] serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket  ; The sample program section below shows all possible program subsection values. ; Create one or more 'real' program: sections to be able to control them under ; supervisor.  [program:foo] command=/home/foo/foo_bar/foo.py ; the program (relative uses PATH, can take args)  [program:bar] command=/home/foo/foo_bar/bar.py ; the program (relative uses PATH, can take args) 
0
Вы входите в эту систему в интерактивном режиме (через ssh) и запускаете supervisord из командной строки? Какую конкретную команду вы запускаете для запуска супервизора? Не могли бы вы [отредактировать] свой вопрос, чтобы показать вывод `ps -f` процесса supervisord? Kenster 6 лет назад 0
@Kenster, я добавил команду запуска и вывод ps -f в соответствии с запросом на мой вопрос. Я вхожу в эту систему в интерактивном режиме через SSH и запускаю из командной строки. ericbdevil 6 лет назад 0

1 ответ на вопрос

0
Adarsh Srivastava

Вы можете использовать, byobuесли на Debian, как система (Ubuntu). Он сохраняет ваш сеанс полностью живым, даже когда вы закрываете SSHсоединение.

Пожалуйста, не злоупотребляйте `\` кодом \ `` для форматирования. Arjan 6 лет назад 0

Похожие вопросы