擅长:python、mysql、java
<p>最近的问题是由您编写的包装器引起的。你知道吗</p>
<p>您试图用以下内容替换python可执行文件:</p>
<pre><code>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/python2.7/lib
/opt/python2.7/bin/python2.7
</code></pre>
<p>这有两个问题:</p>
<ol>
<li>您真的应该从<code>#!/bin/sh</code>开始,而不是依赖于回退行为。你知道吗</li>
<li>您应该使用<code>exec /opt/python2.7/bin/python2.7</code>,而不是将shell进程挂起</li>
<li><p>最重要的是,您将丢弃<code>python</code>命令的所有参数。您需要更改:</p>
<pre><code>/opt/python2.7/bin/python2.7
</code></pre>
<p>收件人:</p>
<pre><code>/opt/python2.7/bin/python2.7 "$@"
</code></pre></li>
</ol>
<p>正如您编写的包装器一样,运行时:</p>
<pre><code>/path/to/wrapper myfile.py
</code></pre>
<p>实际上,您将启动一个交互式Python解释器,而不是运行<code>myfile.py</code>,这就是您的playbook运行挂起的原因。你知道吗</p>
<p>退一步说,比使用包装器更好的解决方案是适当地配置<code>/etc/ld.so.conf</code>,这样<code>/opt/python2.7/bin/python2.7</code>就可以在不设置<code>LD_LIBRARY_PATH</code>的情况下运行。你知道吗</p>