Tentar logar com runit só retorna 'incapaz de abrir supervise / ok'

2

Instalado runit no Debian 7.4 em um Vagrant.

Meu script de execução está funcionando, mas no momento em que crio um diretório service / pants / log /, começo a receber o seguinte erro: unable to open supervise/ok . Meu serviço continua a ser executado, mas nada é registrado.

Eu tentei dois serviços diferentes e ambos têm o mesmo problema.

Eu tentei vários scripts diferentes de service / pants / log / run (usando principalmente svlogd), tentei alterar permissões em tudo (a + rwx), o diretório para armazenar logs existe e tem as mesmas permissões.

Se eu executar o svlogd diretamente da linha de comando, ele funciona como esperado.

O log bash abaixo mostra o que acontece quando eu renomeio /etc/service/pants/_log para /etc/service/pants/log e novamente /etc/service/pants/_log .

root@vwb-debian-wheezy:/etc/service# sv s pants/
run: pants/: (pid 29260) 44931s
root@vwb-debian-wheezy:/etc/service# mv pants/{_,}log/
root@vwb-debian-wheezy:/etc/service# sv s pants/
run: pants/: (pid 29260) 44963swarning: pants/: unable to open supervise/ok: file does not exist
; run: log: (pid 29260) 44963s
root@vwb-debian-wheezy:/etc/service# cat pants/log/run
#!/bin/sh

exec svlogd -ttt /var/log/service/pants/

root@vwb-debian-wheezy:/etc/service# ll pants/
total 12
drwxrwxrwx 2 root root 4096 Jul  3 07:00 log
-rwxrwxrwx 1 root root  442 Jul  3 06:58 run
drwxrwxrwx 2 root root 4096 Jul  2 18:59 supervise
root@vwb-debian-wheezy:/etc/service# ll /var/log/service/
total 8
drwxrwxrwx 2 root root 4096 Jul  2 16:55 pants
root@vwb-debian-wheezy:/etc/service# mv pants/{,_}log/
root@vwb-debian-wheezy:/etc/service# sv s pants/
run: pants/: (pid 29260) 45105s
    
por Rudolf Vavruch 03.07.2014 / 09:44

2 respostas

3

Crie os arquivos run em /etc/sv/pants/ not /etc/service/pants/ .

Em seguida, um link simbólico deve ser criado em /etc/service to /etc/sv/pants para ativar o serviço.

ln -s /etc/sv/pants /etc/service/

Embora a criação dos arquivos diretamente em /etc/service funcione apenas para o serviço, parece causar problemas ao usar o registro também.

Um serviço pode ser desativado, excluindo o link simbólico em /etc/service/ .

    
por 03.07.2014 / 20:09
2

Para a instalação Debian, existem dois diretórios: /etc/service e /service . Para que o seu serviço seja efetivamente controlado, eles devem ser imagens de espelho mais ou menos um do outro. No seu exemplo, para o serviço pants , deve haver um link simbólico /etc/service/pants e um link simbólico /service/pants , cada um deve apontar para /etc/sv/pants . Você pode "trapacear" e transformar /service um link simbólico em si mesmo em /etc/service para obter o mesmo efeito, mas ainda não tenho certeza do impacto total dessa alteração.

    
por 31.07.2014 / 09:43