O problema é que, pelo menos no Ubuntu 12.04, os links dos serviços do runit devem ser colocados em / etc / service, not / service conforme o guia Arch em Runit
Estou tentando descobrir por que o runit não inicializa ou me fornece o status dos aplicativos gerenciados. Rodando no Ubuntu 12.04.
Eu criei / service, / etc / sv / myapp (com um script de execução, um arquivo de configuração, uma pasta de log e um script de execução dentro dele). Eu crio um symlink de / service / para / etc / sv / myapp
Quando eu corro
sudo sv s /service/*
Recebo a seguinte mensagem de erro:
warning: /service/myapp: unable to open supervice/ok: file does not exist
Alguns dos meus Googling revelaram que supostamente a reinicialização do serviço svscan poderia consertar isso, mas matá-lo e rodar o svscanboot não fez diferença.
Alguma sugestão? Estou faltando um passo aqui em algum lugar?
O problema é que, pelo menos no Ubuntu 12.04, os links dos serviços do runit devem ser colocados em / etc / service, not / service conforme o guia Arch em Runit
No meu caso, eu apaguei o lock e o pid da configuração do serviço depois de parar o serviço:
# stops the service
sv down serviceName
# deletes the 'pid' and 'lock' files
find -L /etc/service/serviceName -type f \( -name "pid" -o -name "lock" \) -delete
# starts the service
sv up serviceName
# verify service status
sv s serviceName
Demorei um pouco para encontrar a solução, então espero que ajude alguém.
sudo runsv /service/run/ &
Então
sudo sv start /service/run/
ou
sudo sv up /service/run/
O Runit também apresenta problemas ao iniciar quando um serviço é vinculado simbolicamente a um diretório montado em um sistema de arquivos diferente via LVM. Por exemplo,
$ readlink -f /etc/service/my-service
/opt/my-service
$ mount
...
/dev/mapper/lvm--local-opt on /opt type ext4 (...)
$ sv once my-service
warning: my-service: unable to open supervise/ok: file does not exist
Soluções possíveis:
umount /opt; lvremove /dev/mapper/lvm--local-opt
update-service --remove /opt/my-service; mv /opt/my-service /etc/sv; update-service --add /etc/sv/my-service