Кажется, у меня возникают проблемы с выяснением, почему supervisord не запускается от имени пользователя без полномочий root. Если я запускаю его с пользователем, установленным на jason (pid 1000), я получаю следующее в файле журнала:
2010-05-24 08:53:32,143 CRIT Set uid to user 1000
2010-05-24 08:53:32,143 WARN Included extra file "/home/jason/src/tsched/celeryd.conf" during parsing
2010-05-24 08:53:32,189 INFO RPC interface 'supervisor' initialized
2010-05-24 08:53:32,189 WARN cElementTree not installed, using slower XML parser for XML-RPC
2010-05-24 08:53:32,189 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2010-05-24 08:53:32,190 INFO daemonizing the supervisord process
2010-05-24 08:53:32,191 INFO supervisord started with pid 3444
... тогда процесс умирает по неизвестной причине. Если я запускаю его без sudo (под пользователем jason), я получаю похожий вывод:
2010-05-24 08:51:32,859 INFO supervisord started with pid 3306
2010-05-24 08:52:15,761 CRIT Can't drop privilege as nonroot user
2010-05-24 08:52:15,761 WARN Included extra file "/home/jason/src/tsched/celeryd.conf" during parsing
2010-05-24 08:52:15,807 INFO RPC interface 'supervisor' initialized
2010-05-24 08:52:15,807 WARN cElementTree not installed, using slower XML parser for XML-RPC
2010-05-24 08:52:15,807 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2010-05-24 08:52:15,808 INFO daemonizing the supervisord process
2010-05-24 08:52:15,809 INFO supervisord started with pid 3397
... и это все еще не работает. Если это поможет, вот файл supervisord.conf, который я использую:
[unix_http_server]
file=/tmp/supervisor.sock ; path to your socket file
[supervisord]
logfile=./supervisord.log ; supervisord log file
logfile_maxbytes=50MB ; maximum size of logfile before rotation
logfile_backups=10 ; number of backed up logfiles
loglevel=debug ; info, debug, warn, trace
pidfile=./supervisord.pid ; pidfile location
nodaemon=false ; run supervisord as a daemon
minfds=1024 ; number of startup file descriptors
minprocs=200 ; number of process descriptors
user=jason ; default user
childlogdir=./supervisord/ ; where child log files will live
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use unix:// schem for a unix sockets.
[include]
# Uncomment this line for celeryd for Python
files=celeryd.conf
# Uncomment this line for celeryd for Django.
;files=django/celeryd.conf
... а вот и celeryd.conf:
[program:celery]
command=bin/celeryd --loglevel=INFO --logfile=./celeryd.log
environment=PYTHONPATH='./tsched_worker',
JIVA_DB_PLATFORM='oracle',
ORACLE_HOME='/usr/lib/oracle/xe/app/oracle/product/10.2.0/server',
LD_LIBRARY_PATH='/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib',
TNS_ADMIN='/home/jason',
CELERY_CONFIG_MODULE='tsched_worker.celeryconfig'
directory=.
user=jason
numprocs=1
stdout_logfile=/var/log/celeryd.log
stderr_logfile=/var/log/celeryd.log
autostart=true
autorestart=true
startsecs=10
; Need to wait for currently executing tasks to finish at shutdown.
; Increase this if you have very long running tasks.
stopwaitsecs = 600
; if rabbitmq is supervised, set its priority higher
; so it starts first
priority=998
Может ли кто-нибудь помочь мне понять, что происходит?
sudo
root
daemon
supervisord
Джейсон Бейкер
источник
источник
Ответы:
Попробуйте закомментировать этот параметр. Если вы не указали пользователя, он должен работать с тем же идентификатором пользователя, который запустил процесс.
источник
Я очень плохо знаком с руководителем, но я также пытаюсь заставить его работать с celeryd. На данный момент я рад, что supervisord запускается с правами root, поскольку он запускается с помощью сценария init.d, ум.
В любом случае взгляните на журнал и файлы журнала ошибок для супервизора . Что там? На Ubuntu 10.10 они есть
/var/log/supervisor/supervisord.log
. Вы можете использовать команду 'maintail' в supervisorctl.источник
Возможно, несколько не связано, но убедитесь, что вы не делаете ту же ошибку, что и я. У меня была куча каталогов и файлов (файлов журналов), которые я пытался использовать в качестве пользователя без полномочий root, который случайно уже принадлежал пользователю root, что делало невозможным продолжение наблюдения в качестве пользователя без полномочий root. Блог об этом здесь
источник