我正在尝试使芹菜和芹菜节拍变得更有活力。
我的问题是,当我运行这两个文件时,celeryd和celerybeat使用system python (2.4),因此在python2.7下找不到其他安装的应用程序。Python2.7是在~/.bashrc和/.bash_profile文件中,所以我在运行其他应用程序时没有任何问题,除非工人无法工作。当我运行python ...../manage.py celery (使用所有选项)时,一切工作起来都很棒。
请告诉我如何才能强制/init.d/function运行python2.7。
我曾尝试实现#! /bin/sh python,但它不起作用。
发布于 2013-07-01 22:17:08
/etc/init.d中的脚本通常在系统启动时以根用户身份运行。根目录的~/.bashrc (即/root/.bashrc)看起来将与您的完全不同(例如/home/reza/.bashrc)。如果您以交互方式运行或不以交互方式运行,您的shell的行为将略有不同。
因此,尝试通过/bin/sh运行python解释器是没有用的,它只会增加开销。
您想要的是添加一个适当的shebang,它告诉系统要为您的脚本使用哪个解释器。
例如:
#!/usr/bin/python2.7将使用安装在/usr/bin中的python2.7二进制文件。(因此,无论何时运行/etc/init.d/foo.py,系统实际上都运行/usr/bin/python2.7 /etc/init.d/foo.py)
https://stackoverflow.com/questions/17034338
复制相似问题