2014-09-05 46 views
0

我正在为我的centOs服务器上的python脚本设置一个新贵的服务。虽然脚本需要python 2.7才能工作。但服务器上的默认python版本是2.6,我不想改变它,因为恐怕其他脚本会失败。使用特定的python版本运行python脚本作为新贵服务

我已经安装了Python 2.7并进行了测试,它对我的​​脚本完全正常工作。虽然我想知道如何编写.conf文件来使文件在python 2.7中执行。因为现在我收到了“作业无法启动”消息。我相信这可能是因为它在执行脚本时使用了2.6。

这是我目前的conf文件(具有目录和文件名,虽然):

description "MY SCRIPT DESCRIPTION" 
author "MY NAME" 

start on runlevel [234] 
stop on runlevel [0156] 

chdir /home/aUser/scriptLocation 
exec /home/aUser/scriptLocation/theScript.py 
respawn 
+0

你的第一段说你想使用2.7,但最终在2.6下运行。您的第二段意味着您不想使用2.7,并且认为“这可能是因为它在执行脚本时使用了2.7”而导致作业无法启动。我猜这是前者,而不是后者,但你应该编辑这个问题来说清楚。 – abarnert 2014-09-05 22:22:24

+0

另外,你有''!/ usr/local/bin/python2.7'或类似的''theScript.py'或'#!/ usr/bin/python'吗?因为如果是后者,那就是你遇到这个问题的原因。我不知道你是如何部署脚本的,但是各种各样的东西(包括'setuptools')知道如何自动更新作为安装/部署的一部分的shebang,因此修正你的部署过程可能是正确的解决方案。 – abarnert 2014-09-05 22:24:34

+0

对不起,我的错字。我想使用2.7,但我认为它使用2.6。所以我改变了这一点。我认为丹尼尔的答案会起作用(如果我只用2.7而不是2.6)。但我必须明天才能尝试。 – jimutt 2014-09-05 22:29:59

回答

3

您可以直接调用Python可执行程序,直接和通过脚本作为参数,而不是调用脚本本身。

exec /path/to/my/python2.6 /home/aUser/scriptLocation/theScript.py 
+2

我想他打算使用2.7,而不是2.6这里(虽然问题有点不清楚),但除此之外,现货。 – abarnert 2014-09-05 22:22:59

+0

谢谢!明天早上我会试试。关于版本,abarnert是正确的。这是我的坏处,因为我在这个问题上犯了一个错字,所以它变得相当不清楚。但是,我会明天尝试你的方法,然后在你的评论标记作为答案,如果它的工作。 – jimutt 2014-09-05 22:32:05