Gunicorn: Erro 26 do SO: Arquivo de texto ocupado ao executar gunicorn usando --pid no Vagrant

Criado em 31 mai. 2017  ·  4Comentários  ·  Fonte: benoitc/gunicorn

Olá a todos,

Tendo alguns problemas em execução com o sinalizador --pid . Parece que sempre que uso esse sinalizador, o gunicorn não consegue iniciar. Sem a bandeira não há problemas. Aqui está o erro. Parece que o gunicorn está tentando renomear o pidfile temporário para 'bzpid' neste caso, mas não pode porque está ocupado. Talvez haja algo acessando o arquivo? Mas eu não podia imaginar o que...

vagrant@basezero-nightly :/vagrant/client$ cd /vagrant/server
vagrant@basezero-nightly :/vagrant/server$ export BASEZERO_FLASK_SETTINGs=/vagrant/server/prodconfig.py
vagrant@basezero-nightly :/vagrant/server$ gunicorn --pid bzpid basezero_ flask:app
[2017-05-31 13:44:12 +0000] [20613] [INFO] Iniciando o gunicorn 19.7.1
Traceback (última chamada mais recente):
Arquivo "/usr/local/bin/gunicorn", linha 11, em
sys.exit(run())
Arquivo "/usr/local/lib/python3.5/dist-packages/gunicorn/app/wsgiapp.py", linha 74, em execução
WSGIApplication("%(prog)s [OPÇÕES] [APP_MODULE]").run()
Arquivo "/usr/local/lib/python3.5/dist-packages/gunicorn/app/base.py", linha 203, em execução
super(Aplicativo, self).run()
Arquivo "/usr/local/lib/python3.5/dist-packages/gunicorn/app/base.py", linha 72, em execução
Árbitro(auto).run()
Arquivo "/usr/local/lib/python3.5/dist-packages/gunicorn/arbiter.py", linha 198, em execução
self.start()
Arquivo "/usr/local/lib/python3.5/dist-packages/gunicorn/arbiter.py", linha 139, no início
self.pidfile.create(self.pid)
Arquivo "/usr/local/lib/python3.5/dist-packages/gunicorn/pidfile.py", linha 39, em create
os.rename(fname, self.fname)
OSError: [Errno 26] Arquivo de texto ocupado: '/vagrant/server/tmpz5qc_vy3' -> 'bzpid'

Obrigado pela ajuda.

Comentários muito úteis

Você está executando o vagrant no Windows por acaso? Nesse caso, talvez você esteja compartilhando o diretório com o Windows e o sistema de arquivos do Windows não pode suportar a renomeação enquanto estiver em uso.

Todos 4 comentários

Você está executando o vagrant no Windows por acaso? Nesse caso, talvez você esteja compartilhando o diretório com o Windows e o sistema de arquivos do Windows não pode suportar a renomeação enquanto estiver em uso.

Pode confirmar que isso também acontece com o Virtualbox

@akshaybabloo mas no Windows compartilhando um diretório também?

Sim, mas acho que é um problema com o Virtualbox (basicamente qualquer coisa que não seja o software da Microsoft), o Windows bloqueia qualquer arquivo que não seja gerado com o Hyper-V. Se você mudar para o Hyper-V, não terá esse problema.

Mas você terá outro problema, o Hyper-v tende a confundir entre várias VMs rodando nele, eventualmente trava ou não faz nada. Acho que para superar isso talvez você precise criar uma nova rede virtual.

Esta página foi útil?
0 / 5 - 0 avaliações