<h1 dir="auto">Checklist</h1>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have verified that the issue exists against the <code class="notranslate">master</code> branch of Celery.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> This has already been asked to the <a href="https://groups.google.com/forum/#!forum/celery-users" rel="nofollow">discussion group</a> first.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have read the relevant section in the<br>
<a href="http://docs.celeryproject.org/en/latest/contributing.html#other-bugs" rel="nofollow">contribution guide</a><br>
on reporting bugs.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/issues?q=is%3Aissue+label%3A%22Issue+Type%3A+Bug+Report%22+-label%3A%22Category%3A+Documentation%22">issues list</a><br>
for similar or identical bug reports.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/pulls?q=is%3Apr+label%3A%22PR+Type%3A+Bugfix%22+-label%3A%22Category%3A+Documentation%22">pull requests list</a><br>
for existing proposed fixes.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/commits/master">commit log</a><br>
to find out if the bug was already fixed in the master branch.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included all related issues and possible duplicate issues<br>
in this issue (If there are none, check this box anyway).</li>
</ul>
<h2 dir="auto">Mandatory Debugging Information</h2>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have included the output of <code class="notranslate">celery -A proj report</code> in the issue.<br>
(if you are not able to do this, then at least specify the Celery<br>
version affected).</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have verified that the issue exists against the <code class="notranslate">master</code> branch of Celery.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included the contents of <code class="notranslate">pip freeze</code> in the issue.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included all the versions of all the external dependencies required<br>
to reproduce this bug.</li>
</ul>
<h2 dir="auto">Optional Debugging Information</h2>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one Python version<br>
and/or implementation.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one message broker and/or<br>
result backend.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one version of the message<br>
broker and/or result backend.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have tried reproducing the issue on more than one operating system.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one workers pool.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue with autoscaling, retries,<br>
ETA/Countdown &amp; rate limits disabled.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue after downgrading<br>
and/or upgrading Celery and its dependencies.</li>
</ul>
<h2 dir="auto">Related Issues and Possible Duplicates</h2>

<h4 dir="auto">Related Issues</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h4 dir="auto">Possible Duplicates</h4>
<ul dir="auto">
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="681035015" data-permission-text="Title is private" data-url="https://github.com/celery/celery/issues/6307" data-hovercard-type="issue" data-hovercard-url="/celery/celery/issues/6307/hovercard" href="https://github.com/celery/celery/issues/6307">#6307</a></li>
</ul>
<h2 dir="auto">Environment &amp; Settings</h2>

<p dir="auto"><strong>Celery version</strong>:</p>

<details>
<summary><b><code class="notranslate">celery report</code> Output:</b></summary>
<p dir="auto">
</p><div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="software -&gt; celery:5.1.2 (sun-harmonics) kombu:5.1.0 py:3.9.1
            billiard:3.6.4.0 py-amqp:5.0.6
platform -&gt; system:Darwin arch:64bit
            kernel version:20.5.0 imp:CPython
loader   -&gt; celery.loaders.default.Loader
settings -&gt; transport:amqp results:disabled

deprecated_settings: None"><pre class="notranslate"><code class="notranslate">software -&gt; celery:5.1.2 (sun-harmonics) kombu:5.1.0 py:3.9.1
            billiard:3.6.4.0 py-amqp:5.0.6
platform -&gt; system:Darwin arch:64bit
            kernel version:20.5.0 imp:CPython
loader   -&gt; celery.loaders.default.Loader
settings -&gt; transport:amqp results:disabled

deprecated_settings: None
</code></pre></div>
<p dir="auto"></p>
</details>
<h1 dir="auto">Steps to Reproduce</h1>
<h2 dir="auto">Required Dependencies</h2>

<ul dir="auto">
<li><strong>Minimal Python Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Celery Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Kombu Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Broker Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Result Backend Version</strong>: N/A or Unknown</li>
<li><strong>Minimal OS and/or Kernel Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Broker Client Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Result Backend Client Version</strong>: N/A or Unknown</li>
</ul>
<h3 dir="auto">Python Packages</h3>

<details>
<summary><b><code class="notranslate">pip freeze</code> Output:</b></summary>
<p dir="auto">
</p><div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="amqp==5.0.6
appdirs==1.4.4
billiard==3.6.4.0
black==20.8b1
celery==5.1.2
click==7.1.2
click-didyoumean==0.0.3
click-plugins==1.1.1
click-repl==0.2.0
flake8==3.9.2
Flask==2.0.1
isort==5.9.1
itsdangerous==2.0.1
Jinja2==3.0.1
kombu==5.1.0
MarkupSafe==2.0.1
mccabe==0.6.1
motor==2.4.0
mypy-extensions==0.4.3
numpy==1.21.0
pathspec==0.8.1
prompt-toolkit==3.0.19
pycodestyle==2.7.0
pyflakes==2.3.1
pymongo==3.11.4
pytz==2021.1
PyYAML==5.4.1
regex==2021.4.4
six==1.16.0
toml==0.10.2
typed-ast==1.4.3
typing-extensions==3.10.0.0
vine==5.0.0
wcwidth==0.2.5
Werkzeug==2.0.1"><pre class="notranslate"><code class="notranslate">amqp==5.0.6
appdirs==1.4.4
billiard==3.6.4.0
black==20.8b1
celery==5.1.2
click==7.1.2
click-didyoumean==0.0.3
click-plugins==1.1.1
click-repl==0.2.0
flake8==3.9.2
Flask==2.0.1
isort==5.9.1
itsdangerous==2.0.1
Jinja2==3.0.1
kombu==5.1.0
MarkupSafe==2.0.1
mccabe==0.6.1
motor==2.4.0
mypy-extensions==0.4.3
numpy==1.21.0
pathspec==0.8.1
prompt-toolkit==3.0.19
pycodestyle==2.7.0
pyflakes==2.3.1
pymongo==3.11.4
pytz==2021.1
PyYAML==5.4.1
regex==2021.4.4
six==1.16.0
toml==0.10.2
typed-ast==1.4.3
typing-extensions==3.10.0.0
vine==5.0.0
wcwidth==0.2.5
Werkzeug==2.0.1
</code></pre></div>
<p dir="auto"></p>
</details>
<h3 dir="auto">Other Dependencies</h3>

<details>
<p dir="auto">
N/A
</p>
</details>
<h2 dir="auto">Minimally Reproducible Test Case</h2>

<details>
<p dir="auto">
</p><p dir="auto"><code class="notranslate">celery.py</code></p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="from celery import Celery, signals
from click import Option
import codecs
import yaml

def setup(yml_path: str):
    global CONF
    with codecs.open(yml_path, &quot;r&quot;, &quot;utf-8&quot;) as config_file:
        CONF = yaml.load(config_file, Loader=yaml.FullLoader)

def load_config(yml_path: str):
    conf =setup(yml_path) # Load conf file from custom yaml
    celery_config = conf.get(&quot;celery&quot;, {})
    app_config = celery_config.get(&quot;app&quot;, {})

    app.conf.update(app_config)

    return conf
def _create_celery():
    app = Celery(include=[&quot;ais.tasks&quot;])
    app.user_options[&quot;preload&quot;] = [
        Option([&quot;--config&quot;, &quot;-C&quot;], default=&quot;config/config.yml&quot;)
    ]

    return app

&quot;&quot;&quot;
signal handlers
Warning: signal handlers only executed on server side
&quot;&quot;&quot;


@signals.user_preload_options.connect
def handle_preload_options(options, **kwargs):
    load_config(options[&quot;config&quot;])

app = _create_celery()"><pre class="notranslate"><span class="pl-k">from</span> <span class="pl-s1">celery</span> <span class="pl-k">import</span> <span class="pl-v">Celery</span>, <span class="pl-s1">signals</span>
<span class="pl-k">from</span> <span class="pl-s1">click</span> <span class="pl-k">import</span> <span class="pl-v">Option</span>
<span class="pl-k">import</span> <span class="pl-s1">codecs</span>
<span class="pl-k">import</span> <span class="pl-s1">yaml</span>

<span class="pl-k">def</span> <span class="pl-en">setup</span>(<span class="pl-s1">yml_path</span>: <span class="pl-s1">str</span>):
    <span class="pl-k">global</span> <span class="pl-v">CONF</span>
    <span class="pl-k">with</span> <span class="pl-s1">codecs</span>.<span class="pl-en">open</span>(<span class="pl-s1">yml_path</span>, <span class="pl-s">"r"</span>, <span class="pl-s">"utf-8"</span>) <span class="pl-k">as</span> <span class="pl-s1">config_file</span>:
        <span class="pl-v">CONF</span> <span class="pl-c1">=</span> <span class="pl-s1">yaml</span>.<span class="pl-en">load</span>(<span class="pl-s1">config_file</span>, <span class="pl-v">Loader</span><span class="pl-c1">=</span><span class="pl-s1">yaml</span>.<span class="pl-v">FullLoader</span>)

<span class="pl-k">def</span> <span class="pl-en">load_config</span>(<span class="pl-s1">yml_path</span>: <span class="pl-s1">str</span>):
    <span class="pl-s1">conf</span> <span class="pl-c1">=</span><span class="pl-en">setup</span>(<span class="pl-s1">yml_path</span>) <span class="pl-c"># Load conf file from custom yaml</span>
    <span class="pl-s1">celery_config</span> <span class="pl-c1">=</span> <span class="pl-s1">conf</span>.<span class="pl-en">get</span>(<span class="pl-s">"celery"</span>, {})
    <span class="pl-s1">app_config</span> <span class="pl-c1">=</span> <span class="pl-s1">celery_config</span>.<span class="pl-en">get</span>(<span class="pl-s">"app"</span>, {})

    <span class="pl-s1">app</span>.<span class="pl-s1">conf</span>.<span class="pl-en">update</span>(<span class="pl-s1">app_config</span>)

    <span class="pl-k">return</span> <span class="pl-s1">conf</span>
<span class="pl-k">def</span> <span class="pl-en">_create_celery</span>():
    <span class="pl-s1">app</span> <span class="pl-c1">=</span> <span class="pl-v">Celery</span>(<span class="pl-s1">include</span><span class="pl-c1">=</span>[<span class="pl-s">"ais.tasks"</span>])
    <span class="pl-s1">app</span>.<span class="pl-s1">user_options</span>[<span class="pl-s">"preload"</span>] <span class="pl-c1">=</span> [
        <span class="pl-v">Option</span>([<span class="pl-s">"--config"</span>, <span class="pl-s">"-C"</span>], <span class="pl-s1">default</span><span class="pl-c1">=</span><span class="pl-s">"config/config.yml"</span>)
    ]

    <span class="pl-k">return</span> <span class="pl-s1">app</span>

<span class="pl-s">"""</span>
<span class="pl-s">signal handlers</span>
<span class="pl-s">Warning: signal handlers only executed on server side</span>
<span class="pl-s">"""</span>


<span class="pl-en">@<span class="pl-s1">signals</span>.<span class="pl-s1">user_preload_options</span>.<span class="pl-s1">connect</span></span>
<span class="pl-k">def</span> <span class="pl-en">handle_preload_options</span>(<span class="pl-s1">options</span>, <span class="pl-c1">**</span><span class="pl-s1">kwargs</span>):
    <span class="pl-en">load_config</span>(<span class="pl-s1">options</span>[<span class="pl-s">"config"</span>])

<span class="pl-s1">app</span> <span class="pl-c1">=</span> <span class="pl-en">_create_celery</span>()</pre></div>
<p dir="auto"><code class="notranslate">config.yml</code></p>
<div class="highlight highlight-source-yaml notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="celery:
  app:
    app_name: parser-worker
    worker_concurrency: 4
    broker_url: redis://localhost:6379/0"><pre class="notranslate"><span class="pl-ent">celery</span>:
  <span class="pl-ent">app</span>:
    <span class="pl-ent">app_name</span>: <span class="pl-s">parser-worker</span>
    <span class="pl-ent">worker_concurrency</span>: <span class="pl-c1">4</span>
    <span class="pl-ent">broker_url</span>: <span class="pl-s">redis://localhost:6379/0</span></pre></div>
<p dir="auto"></p>
</details>
<h1 dir="auto">Expected Behavior</h1>

<p dir="auto">Concurrency worker prefork should be 4 process by <code class="notranslate">app.conf.update</code> from <code class="notranslate">config.yml</code></p>
<h1 dir="auto">Actual Behavior</h1>

<p dir="auto">Concurrency worker still prefork 8 process</p>
<h1 dir="auto">Trace Code</h1>
<h2 dir="auto">The worker init flow with <code class="notranslate">click</code> confused</h2>
<p dir="auto">Module path <code class="notranslate">.venv/lib/python3.9/site-packages/celery/bin/worker.py</code><br>
I found use <code class="notranslate">click</code> lib instead of <code class="notranslate">argparse</code> in <a href="https://github.com/celery/celery/blob/master/celery/bin/worker.py#L183">bin/worker</a><br>
It use <code class="notranslate">value or ctx.obj.app.conf.worker_concurrency</code> for lambda value</p>
<p dir="auto">we hope <code class="notranslate">ctx.obj.app.conf.worker_concurrency</code> be any int but <code class="notranslate">0</code>.<br>
Unfortunately, it seems not in this case.</p>
<p dir="auto"><code class="notranslate">ctx.obj.app.conf.worker_concurrency</code> was setup after <code class="notranslate">@handle_preload_options</code> according to call stack.</p>
<p dir="auto">The <code class="notranslate">concurrency</code> will also be <code class="notranslate">0</code> in <a href="https://github.com/celery/celery/blob/master/celery/worker/worker.py#L376">worker/worker.py</a>, though it use <code class="notranslate">either</code> func to <code class="notranslate"> either('worker_concurrency', concurrency)</code>.</p>
<h1 dir="auto">Checklist</h1>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have read the relevant section in the<br>
<a href="http://docs.celeryproject.org/en/latest/contributing.html#other-bugs" rel="nofollow">contribution guide</a><br>
on reporting bugs.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/issues?q=is%3Aissue+label%3A%22Issue+Type%3A+Bug+Report%22+-label%3A%22Category%3A+Documentation%22">issues list</a><br>
for similar or identical bug reports.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/pulls?q=is%3Apr+label%3A%22PR+Type%3A+Bugfix%22+-label%3A%22Category%3A+Documentation%22">pull requests list</a><br>
for existing proposed fixes.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/commits/master">commit log</a><br>
to find out if the bug was already fixed in the master branch.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included all related issues and possible duplicate issues<br>
in this issue (If there are none, check this box anyway).</li>
</ul>
<h2 dir="auto">Mandatory Debugging Information</h2>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included the output of <code class="notranslate">celery -A proj report</code> in the issue.<br>
(if you are not able to do this, then at least specify the Celery<br>
version affected).</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have verified that the issue exists against the <code class="notranslate">master</code> branch of Celery.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have included the contents of <code class="notranslate">pip freeze</code> in the issue.
<ul dir="auto">
<li>Forbidden by company policy</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included all the versions of all the external dependencies required<br>
to reproduce this bug.</li>
</ul>
<h2 dir="auto">Optional Debugging Information</h2>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one Python version<br>
and/or implementation.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one message broker and/or<br>
result backend.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one version of the message<br>
broker and/or result backend.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one operating system.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue on more than one workers pool.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue with autoscaling, retries,<br>
ETA/Countdown &amp; rate limits disabled.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue after downgrading<br>
and/or upgrading Celery and its dependencies.</li>
</ul>
<h2 dir="auto">Related Issues and Possible Duplicates</h2>

<h4 dir="auto">Related Issues</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h4 dir="auto">Possible Duplicates</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h2 dir="auto">Environment &amp; Settings</h2>

<p dir="auto"><strong>Celery version</strong>: 4.2.1</p>

<details>
<summary><b><code class="notranslate">celery report</code> Output:</b></summary>
<p dir="auto">
Cannot include this due to company security policy
</p>
</details>
<h1 dir="auto">Steps to Reproduce</h1>
<h2 dir="auto">Required Dependencies</h2>

<ul dir="auto">
<li><strong>Minimal Python Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Celery Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Kombu Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Broker Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Result Backend Version</strong>: N/A or Unknown</li>
<li><strong>Minimal OS and/or Kernel Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Broker Client Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Result Backend Client Version</strong>: N/A or Unknown</li>
</ul>
<h3 dir="auto">Python Packages</h3>

<details>
<summary><b><code class="notranslate">pip freeze</code> Output:</b></summary>
<p dir="auto">
Cannot include this due to company security policy
</p>
</details>
<h3 dir="auto">Other Dependencies</h3>

<details>
<p dir="auto">
N/A
</p>
</details>
<h2 dir="auto">Minimally Reproducible Test Case</h2>

<details>
<p dir="auto">
</p><ul dir="auto">
<li>Set <code class="notranslate">broker_url</code> to an string without a protocol</li>
<li>Start Celery worker with <code class="notranslate">multi start</code>, with a logfile specified with <code class="notranslate">--logfile=</code></li>
<li><code class="notranslate">multi start</code> claims the worker started successfully, when in fact it died immediately. No error message is written to STDOUT or STDERR and nothing at all is written to the logfile</li>
</ul>
<p dir="auto"></p>
</details>
<h1 dir="auto">Expected Behavior</h1>

<ul dir="auto">
<li><strong>At least one</strong> of the following:
<ul dir="auto">
<li><code class="notranslate">multi start</code> reports the worker <em>did not</em> start successfully</li>
<li>An error message or traceback is written to STDOUT or STDERR</li>
<li>The error is recorded in the logfile</li>
</ul>
</li>
</ul>
<h1 dir="auto">Actual Behavior</h1>

<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[REDACTED_PROMPT]$ ~/tools/python/bin/celery multi start worker -A [REDACTED_PACKAGE].celery:APP --pidfile=celery-worker.pid --logfile=celery-worker.log --detach -O fair -l debug
celery multi v4.2.1 (windowlicker)
&gt; Starting nodes...
        &gt; worker@[REDACTED_HOST]: OK
[REDACTED_PROMPT]$ # multi start reports the worker started successfully, and no error message was printed, yet...
[REDACTED_PROMPT]$ ps -aux | grep celery  
foo_user 17792  0.0  0.0   9092   676 pts/0    S+   19:29   0:00 grep --color=auto celery
[REDACTED_PROMPT]$ # The worker is not running
[REDACTED_PROMPT]$ cat celery-worker.log
[REDACTED_PROMPT]$ # And nothing is in the log, either"><pre lang="text" class="notranslate"><code class="notranslate">[REDACTED_PROMPT]$ ~/tools/python/bin/celery multi start worker -A [REDACTED_PACKAGE].celery:APP --pidfile=celery-worker.pid --logfile=celery-worker.log --detach -O fair -l debug
celery multi v4.2.1 (windowlicker)
&gt; Starting nodes...
        &gt; worker@[REDACTED_HOST]: OK
[REDACTED_PROMPT]$ # multi start reports the worker started successfully, and no error message was printed, yet...
[REDACTED_PROMPT]$ ps -aux | grep celery  
foo_user 17792  0.0  0.0   9092   676 pts/0    S+   19:29   0:00 grep --color=auto celery
[REDACTED_PROMPT]$ # The worker is not running
[REDACTED_PROMPT]$ cat celery-worker.log
[REDACTED_PROMPT]$ # And nothing is in the log, either
</code></pre></div>