擅长:python、mysql、java
<p>我看到这一点的几种实现方式:</p>
<ol>
<li><p>检查pidfile是否存在->;如果存在,则退出并显示错误消息,如“如果您确定没有进程正在运行,则返回pid file exists rm it”</p></li>
<li><p>检查pidfile是否存在->;如果存在,检查具有该pid的进程是否存在->;如果是这样,则告诉用户“进程正在运行…”。PID号发生冲突(重新用于另一个进程)的风险非常小,以至于被忽略;告诉用户如何在发生错误时重新启动程序</p></li>
</ol>
<p><strong>提示:</strong>要检查进程是否存在,可以检查<code>/proc/<pid></code>目录</p>
<p>另外,请确保在脚本退出时尽一切可能删除pidfile,例如:</p>
<ol>
<li><p>在<code>try .. finally</code>中包装代码:</p>
<pre><code># Check & create pidfile
try:
# your application logic
finally:
# remove pidfile
</code></pre></li>
<li><p>您甚至可以安装信号处理程序(通过<code>signal</code>模块)在接收到通常不会引发异常但直接退出的信号时删除pidfile。</p></li>
</ol>