我有一个 django 应用程序,它连接到服务器上的多个串行设备。
此应用程序在 Ubuntu 10.04 上运行。用户“chero”是网络服务器进程的所有者。chero 是拨出组的成员。
使用开发服务器或 python shell(以用户 chero 运行),一切都按预期工作。
网络服务器是 cherokee,带有 uwsgi(也作为 chero 运行)。当网络服务器尝试打开串行端口时,我得到:[错误 13] 权限被拒绝。
我已经验证了网络服务器确实以用户 chero 身份运行,方法是将其插入到串行端口打开之前的行中: raise ValueError('user: ' + pwd.getpwuid( os.getuid() ).pw_name)
在我将 /dev/ttyS* 的权限设置为 666 后,网络服务器能够打开端口,但这不是一个理想的解决方案。
是否有某些原因 uwsgi 或 cherokee 会阻止 chero 被识别为拨出组的成员?