<p>这是我通常做的:</p>
<ul>
<li>创建一个描述新Python脚本的<code>service.conf</code>文件。这个脚本引用了shell脚本,它实际上是启动Python脚本的脚本。这个<code>.conf</code>文件位于<code>/etc/supervisor/conf.d</code></li>
<li>创建一个启动Python脚本的shell脚本。将权限更改为可执行。<code>chmod 755 service.sh</code>。在这个脚本中,我们实际上启动了Python脚本。</li>
<li>配置<strong>日志文件</strong>和<strong>日志文件</strong>以验证问题。</li>
<li>使用重新加载更新主管,然后检查状态:</li>
</ul>
<blockquote>
<p>supervisor> status</p>
<p>alexad RUNNING pid 32657, uptime 0:21:05</p>
</blockquote>
<p><strong>服务配置</strong></p>
<pre><code>[program:alexad]
; Set full path to celery program if using virtualenv
command=sh /usr/local/src/gonzo/supervisorctl/alexad.sh
directory=/usr/local/src/gonzo/services/alexa
log_stdout=true ; if true, log program stdout (default true)
log_stderr=true ; if true, log program stderr (default false)
stderr_logfile=/usr/local/src/gonzo/log/alexad.err
logfile=/usr/local/src/gonzo/log/alexad.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
; When resorting to send SIGKILL to the program to terminate it
; send SIGKILL to its whole process group instead,
; taking care of its children as well.
killasgroup=true
; Set Celery priority higher than default (999)
priority=500
</code></pre>
<p><strong>服务.sh</strong></p>
<pre><code>#!/bin/bash
cd /usr/local/src/gonzo/services/alexa
exec python reader.py
</code></pre>