使用主管运行程序时出现权限错误,但不在 shell 中

使用主管运行程序时出现权限错误,但不在 shell 中

我有一个应该始终运行的程序。该程序侦听消息代理中的命令,根据请求执行文件系统操作,并通过同一代理发布结果。为了访问文件,它需要以用户身份运行scicat。为了确保程序始终运行,我supervisord通过它安装并运行了程序。

程序启动并正常监听,但是当进行文件系统操作时,遇到权限错误。但是,如果我这样做sudo su - scicat并通过 shell 运行它,程序将按预期运行。

这是在supervisord 中定义服务的方式:

[program:biomax-file-size-helper]
command=/opt/exp-lc/venvs/biomax-file-size-helper/bin/python /opt/exp-lc/biomax-file-size-helper/main.py
user=scicat

如果我同时运行这两个程序(一个运行,一个不运行)ps aux,我会看到以下内容:

scicat   29867  0.2  0.4 124640 19444 ?        Sl   15:44   0:03 /opt/exp-lc/venvs/biomax-file-size-helper/bin/python /opt/exp-lc/biomax-file-size-helper/main.py
scicat   30012  2.8  0.4 124096 19668 pts/0    Sl+  16:07   0:00 /opt/exp-lc/venvs/biomax-file-size-helper/bin/python /opt/exp-lc/biomax-file-size-helper/main.py

即在任何相关方面两个或多或少相同的过程。是什么导致程序在通过supervisord运行时无法访问文件,但在shell中运行时却无法访问文件?

相关内容