Como posso executar um daemon com parâmetros personalizados?

3

Eu estou querendo saber como eu posso executar um daemon, neste caso, NTP, com parâmetros personalizados.

Por exemplo, no meu PC Ubuntu, observo que tenho ntpd executando desta forma:

$ ps aux | grep ntpd
ntp  5936  ...  0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 119:127

Você pode perceber esse parâmetro -g .

Mas no meu PC Gentoo eu corro o mesmo comando e posso observar que o daemon ntp não está rodando com o parâmetro -g e eu quero adicioná-lo!

Este é um problema específico de distribuição? Como posso lidar com isso?

    
por flyer88 03.01.2012 / 16:53

5 respostas

5

Adivinhando o Wiki do Gentoo , editando NTPD_OPTS em /etc/conf.d/ntpd provavelmente faz o truque ( independentemente da pergunta se -g é aconselhável, não tem ideia).

    
por 03.01.2012 / 17:10
4

No Debian e no Ubuntu, muitas vezes o daemon tem alguns parâmetros de configuração definidos em /etc/default/daemon-name , isto é, por exemplo /etc/default/ntp :

NTPD_OPTS='-g'

Este arquivo é originado de /etc/init.d/ntp , e o valor das variáveis correspondentes usadas oportunamente:

# near the beginning

if [ -r /etc/default/ntp ]; then
    . /etc/default/ntp
fi

# later

start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas $DAEMON \
    -- -p $PIDFILE $NTPD_OPTS

Eu não sei se o Gentoo tem algo parecido.

    
por 03.01.2012 / 17:11
1

Daemon é como qualquer outro programa escrito a partir do código-fonte e compilado em formato executável, pode ser feito para aceitar argumentos, processar os argumentos de modo a usá-los como argumento especificando opções ou argumentos em si. A diferença entre daemon e programa pode ser, em essência, que o modo daemon do programa está mudando as tarefas para o modo de segundo plano e, opcionalmente, dependendo do requisito do serviço, é escutar na interface de rede e aceitar pedidos por fio. Portanto, passar os argumentos da linha de comando no prompt do shell ou logo após especificar o caminho do executável do daemon no script é o mesmo. O método de configurações ou variáveis que são usadas no shell script para invocar o daemon com os argumentos necessários, entretanto, podem diferir em estilo ou convenção. É importante ler o manual, se for fornecido, para saber quais argumentos são aceitos pelo executável daemon ou para o programa e saber o que eles são usados antes de colocá-los em uso na execução do que apenas fornecer as opções.

    
por 03.01.2012 / 19:34
1

Estou me movendo entre muitas distribuições e versões do Linux. A maneira genérica - que eu tomo nesses casos é:

Leia o init-script - ele frequentemente origina um ou mais arquivos de configuração. Se o script init não analisar nenhum arquivo de configuração, você poderá modificar o script init. A desvantagem é que uma atualização do pacote ao qual o init-script pertence sobrescreverá suas alterações.

    
por 03.01.2012 / 22:02
1

Diferentes distribuições fazem isso de forma diferente. De um modo geral, pesquise em /etc para o local em que esse daemon específico foi iniciado ( grep -r ntpd /etc ou find /etc -type f -exec grep ntpd {} + ) e, em seguida, veja como o script que o inicia obtém seus parâmetros. Alternativamente, consulte a documentação da sua distribuição para princípios gerais.

Geralmente, existe um script de shell grande ou outro arquivo de configuração que inicia muitos serviços, ou há um script ou arquivo de configuração para cada serviço. Os parâmetros podem ser fornecidos nesse script ou obtidos de uma variável definida em algum outro arquivo de configuração. Locais comuns incluem /etc/init* , /etc/rc* e /etc/default/* .

    
por 04.01.2012 / 00:16