RUNIT - criou o primeiro diretório de serviços, “sv start testrun” não funciona

4

Eu sou muito novo para executar. Eu instalei em um host Ubuntu.

O que eu fiz:

1) criou um dir testrun em /etc/sv

2) criou um script run em /etc/sv/testrun/run , o conteúdo do script:

#! /bin/bash
exec /root/FP/annotate-output python /root/FP/test.py | logger -t svtest

3) Se eu chamar diretamente / etc / sv / testrun / run ele executa com sucesso

4) Eu corro sv start testrun (ou sv run testrun , sv restart testrun ), todos eles acabam com a mesma mensagem de erro:

fail: sv: unable to change to service directory: file does not exist

Alguma idéia do que estou fazendo de errado? Eu sou novo em executar e basear todas as minhas ações nas informações encontradas aqui: link

    
por ddinchev 19.06.2012 / 16:32

2 respostas

0

Parece que sv controla serviços iniciados e monitorados por runit (usando runsv ). Como o runit na minha máquina não substitui o sysvinit , ele não é executado e não monitora o /services/ que deve conter links simbólicos para os diretórios /etc/sv/ .

A execução de runsv /etc/sv/testrun/ parece fazer o comportamento esperado do runit.

    
por 19.06.2012 / 16:52
6

Seu serviço não está configurado corretamente. A razão disso é que você o invocou diretamente do serviço definição e não do serviço real controle .

Quando o gerenciamento de serviço do runit é iniciado, ele espera que exista um diretório /service , apesar de algumas instalações (como o Debian Jessie) atualmente estarem em /etc/service por razões desconhecidas. A mensagem de erro vem desse diretório ausente, ao qual está tentando mudar, portanto, a mensagem unable to change service directory . Faça o seguinte como root:

mkdir -p /etc/service
cd /
ln -s /etc/service
cd /service
ln -s /etc/sv/testrun

Isto irá:

  • crie o diretório de serviço, se ele não existir
  • coloque um link simbólico na raiz para que o runsvdir possa mudar para /service como seu diretório de trabalho
  • cria um link para seu serviço testrun , supondo que você tenha definido em /etc/sv/testrun

runsvdir poderá, então, alterar seu diretório para /service , encontrar seu link simbólico para testrun e depois iniciá-lo. Você pode verificar isso usando ps fax ou pstree -A para ver a árvore de processos; deve haver um runsv com seu comando anexado a ele. Nota: às vezes pode levar um segundo ou dois para o processo runsvdir ser orientado para a cabeça, então se você olhar imediatamente e não vê-lo na árvore de processos, aguarde 2-3 segundos e tente novamente, e deve aparecer. Isto parece acontecer apenas quando é iniciado.

    
por 20.08.2014 / 20:56

Tags