Erros de permissão ao executar o programa usando supervisor, mas não no shell

2

Eu tenho um programa que deveria estar sempre rodando. Esse programa atende a comandos em um intermediário de mensagens, realiza uma operação do sistema de arquivos mediante solicitação e publica o resultado por meio do mesmo intermediário. Para acessar os arquivos, ele precisa ser executado como o usuário scicat . Para garantir que o programa esteja sempre em execução, instalei supervisord e executei o programa através dele.

O programa inicia e escuta adequadamente, mas quando chega a hora da operação do sistema de arquivos, ele encontra erros de permissão. No entanto, se eu executar sudo su - scicat e executá-lo no shell, o programa funcionará como pretendido.

É assim que o serviço é definido no 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

Se eu executar os dois programas ao lado - um funcionando e o outro não - e usar ps aux , vejo o seguinte:

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

Ou seja. dois processos mais ou menos idênticos em qualquer aspecto relevante. O que faz com que o programa não consiga acessar arquivos quando executado através do supervisord, mas não quando executado no shell?

    
por Hannes Petri 17.05.2018 / 17:16

0 respostas