|
@@ -19,6 +19,7 @@ import sys
|
|
|
from optparse import OptionParser, BadOptionError
|
|
|
|
|
|
from celery.platforms import EX_FAILURE, detached
|
|
|
+from celery.utils import default_nodename, node_format
|
|
|
from celery.utils.log import get_logger
|
|
|
|
|
|
from celery.bin.base import daemon_options
|
|
@@ -32,7 +33,10 @@ C_FAKEFORK = os.environ.get('C_FAKEFORK')
|
|
|
|
|
|
def detach(path, argv, logfile=None, pidfile=None, uid=None,
|
|
|
gid=None, umask=None, working_directory=None, fake=False, app=None,
|
|
|
- executable=None):
|
|
|
+ executable=None, hostname=None):
|
|
|
+ hostname = default_nodename(hostname)
|
|
|
+ logfile = node_format(logfile, hostname)
|
|
|
+ pidfile = node_format(pidfile, hostname)
|
|
|
fake = 1 if C_FAKEFORK else fake
|
|
|
with detached(logfile, pidfile, uid, gid, umask, working_directory, fake,
|
|
|
after_forkers=False):
|
|
@@ -44,7 +48,8 @@ def detach(path, argv, logfile=None, pidfile=None, uid=None,
|
|
|
if app is None:
|
|
|
from celery import current_app
|
|
|
app = current_app
|
|
|
- app.log.setup_logging_subsystem('ERROR', logfile)
|
|
|
+ app.log.setup_logging_subsystem(
|
|
|
+ 'ERROR', logfile, hostname=hostname)
|
|
|
logger.critical("Can't exec %r", ' '.join([path] + argv),
|
|
|
exc_info=True)
|
|
|
return EX_FAILURE
|
|
@@ -159,6 +164,7 @@ class detached_celeryd(object):
|
|
|
def prepare_arguments(self, parser):
|
|
|
daemon_options(parser, default_pidfile='celeryd.pid')
|
|
|
parser.add_option('--workdir', default=None, dest='working_directory')
|
|
|
+ parser.add_option('-n', '--hostname')
|
|
|
parser.add_option(
|
|
|
'--fake',
|
|
|
default=False, action='store_true', dest='fake',
|