子进程的upstart脚本/ uwsgi的权限问题(OSError:没有这样的文件或目录)

时间:2016-05-20 09:53:59

标签: python linux subprocess uwsgi upstart

我有一个烧瓶应用程序,我使用Nginx和uwsgi运行。它使用一个通过子进程调用某些系统函数的库。

现在,如果我手动运行uwsgi服务器,一切正常:

uwsgi --ini uwsgi.ini   # all good

然后我有一个运行该东西的upstart脚本:

start on runlevel [2345]
stop on runlevel [!2345]

setuid ubuntu
setgid ubuntu

env PATH=/home/ubuntu/proj/env/bin
chdir /home/ubuntu/proj
exec uwsgi --ini uwsgi.ini

通过sudo start proj启动。服务器运行正常,但库失败如下:

File "/home/ubuntu/proj/env/local/lib/python2.7/site-packages/pdfkit/configuration.py", line 18, in __init__
['which', 'wkhtmltopdf'], stdout=subprocess.PIPE).communicate()[0].strip()
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

我怀疑它有一些权限问题,但无法弄清楚如何让它发挥作用。任何见解都非常感谢!

流程看起来几乎相同(使用ps aux | grep uwsgi):

手册:

ubuntu    9958  0.3  4.5 127372 45804 pts/2    S+   09:40   0:00 uwsgi --ini uwsgi.ini
ubuntu    9963  0.0  4.0 127372 41176 pts/2    S+   09:40   0:00 uwsgi --ini uwsgi.ini
...

暴发户:

ubuntu   10020  4.7  4.5 125792 45748 ?        Ss   09:42   0:00 uwsgi --ini uwsgi.ini
ubuntu   10027  0.0  3.9 125792 40432 ?        S    09:42   0:00 uwsgi --ini uwsgi.ini
....

0 个答案:

没有答案