擅长:python、mysql、java
<p>这就是<a href="https://docs.python.org/2/library/subprocess.html#subprocess.call" rel="nofollow">^{<cd1>}</a>所做的:它等待</em>直到子进程完成。在</p>
<p>您可以使用<code>Popen()</code>运行第一个命令来修复它:</p>
<pre><code>p1 = subprocess.Popen(["dtncpd","/home/dtn2"], cwd="/home/dtn2/dtn-2.9.0/apps/")
</code></pre>
<p>因为您不需要与此进程通信(使用<code>subprocess.call()</code>不收集子输出),所以这应该没问题。在</p>
<p>稍后,一旦第二个命令终止,您可以调用<code>p1.wait()</code>等待子进程退出——假设它会退出。这将阻止创建僵尸<code>dtncpd</code>进程。在</p>
<p>这可能有点天真,因为第一个命令看起来可能是一个守护进程。如果是这种情况,并且您只是想启动<code>dtncpd</code>守护进程,那么您需要确保<code>dtncpd</code>确实是守护进程。我不熟悉<code>dtncpd</code>,可能需要提供一个配置设置或命令行参数,才能使其正常守护。在</p>