我有一个烧瓶应用程序,我使用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
....