0

如果我以用户身份登录www-data并运行此命令,它将起作用:

python /var/www/ssrc/jvwf/manage.py runfcgi --settings=spzr.settings-dev \\
method=prefork socket=/tmp/www/spzr.socket pidfile=/tmp/www/spzr.pid \\
minspare=4 maxspare=8 maxchildren=128 maxrequests=65535 daemonize=false

但是,当我从 运行它时root,以下列方式(作为运行www-data):

exec /bin/su -c "python /var/www/ssrc/jvwf/manage.py runfcgi \\
--settings=spzr.settings-dev --pythonpath=/var/www/ssrc/jvwf \\
method=prefork socket=/tmp/www/spzr.socket pidfile=/tmp/www/spzr.pid \\
minspare=4 maxspare=8 maxchildren=128 maxrequests=65535 \\
daemonize=false" - www-data

这没用。

实际上,第二个命令只是:

exec /bin/su -c "FIRST_COMMAND" - www-data

问题是它无法正确导入从传递的设置文件中导入的中间设置文件。我想这是一个 ENV (或path)问题,但我不知道如何解决它。

\\以上是用于显示的行分隔符,我在现实中使用的是一个衬垫)

4

1 回答 1

1

一个区别是,当使用带有 - 选项的 su 时,它会自动 cd 到主目录。尝试在你的命令前面添加一个 cd:

exec /bin/su -c "cd /var/www/ssrc/...; python ..." - www-data

否则:你得到什么错误信息?

于 2012-04-25T22:03:42.300 回答