|  | @@ -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, Option
 | 
	
	
		
			
				|  | @@ -31,6 +32,7 @@ C_FAKEFORK = os.environ.get('C_FAKEFORK')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  OPTION_LIST = daemon_options(default_pidfile='celeryd.pid') + (
 | 
	
		
			
				|  |  |      Option('--workdir', default=None, dest='working_directory'),
 | 
	
		
			
				|  |  | +    Option('-n', '--hostname'),
 | 
	
		
			
				|  |  |      Option('--fake',
 | 
	
		
			
				|  |  |             default=False, action='store_true', dest='fake',
 | 
	
		
			
				|  |  |             help="Don't fork (for debugging purposes)"),
 | 
	
	
		
			
				|  | @@ -39,7 +41,10 @@ OPTION_LIST = daemon_options(default_pidfile='celeryd.pid') + (
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  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):
 | 
	
	
		
			
				|  | @@ -51,7 +56,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
 |