FreeBSD Handbook/Administração/Configuração e Ajuste/Inicializando Serviços

Origem: Wikilivros, livros abertos por um mundo aberto.



11.5 Inicializando Serviços[editar | editar código-fonte]

Contribuição de Tom Rhodes.

Muitos usuários optam por instalar softwares de terceiros no FreeBSD através da Coleção de Ports. Muitas vezes pode ser necessário configurar o software de modo a ser executado na inicialização do sistema. Serviços, tais como mail/postfix ou www/apache13 são apenas dois dos muitos pacotes de software que podem ser iniciados durante o boot do sistema. Esta seção explica os procedimentos disponíveis para iniciar os softwares de terceiros.

No FreeBSD, a maioria dos serviços incluídos, como o cron(8), são iniciados por meio dos scripts de inicialização do sistema. Esses scripts podem variar dependendo da versão do FreeBSD ou software, no entanto, o aspecto mais importante é que a configuração de sua inicialização pode ser feita através de scripts simples.

11.5.1 Configuração Estendida de Aplicativos[editar | editar código-fonte]

Agora que o FreeBSD utiliza o rc.d, a configuração de inicialização de um aplicativo tornou-se mais fácil e possui mais recursos. Usando as palavras-chave discutidas na Seção 11.7 - Usando rc no FreeBSD, os aplicativos agora podem ser programados para iniciar após outros serviços, como DNS por exemplo; podem permitir a passagem de outros parâmetros através do rc.conf ao invés de inseridos (hardcoded) nos próprios scripts, etc. Um script básico pode ser como o seguinte:

 #!/bin/sh
 #
 # PROVIDE: utility
 # REQUIRE: DAEMON
 # KEYWORD: shutdown
 
 . /etc/rc.subr
 
 name=ütility"
 rcvar=`set_rcvar`
 command="/usr/local/sbin/utility"
 
 load_rc_config $name
 
 #
 # DO NOT CHANGE THESE DEFAULT VALUES HERE
 # SET THEM IN THE /etc/rc.conf FILE
 #
 utility_enable=${utility_enable-"NO"}
 utility_pidfile=${utility_pidfile-"/var/run/utility.pid"}
 
 pidfile="${utility_pidfile}"
 
 run_rc_command "$1"

Este script garantirá que o utilitário fornecido (PROVIDE: utility) será iniciado após o pseudo-serviço DAEMON. Ele também fornece um método para a definição e rastreamento do PID, o arquivo com o ID do processo.

Esta aplicação poderia então ter a seguinte linha no /etc/rc.conf:

 utility_enable="YES"

Este método também permite a fácil manipulação dos argumentos de linha de comando, a inclusão das funções padrão fornecidas no arquivo /etc/rc.subr, compatibilidade com o utiliário rcorder(8) e prevê fácil configuração através do arquivo rc.conf.

11.5.2 Usando Serviços para Iniciar Serviços[editar | editar código-fonte]

Outros serviços, como os daemons do servidor POP3, IMAP etc, podem ser iniciados através do inetd(8). Isto implica instalar o aplicativo através da Coleção de Ports e adicionar uma linha de configuração ao arquivo /etc/inetd.conf ou descomentar uma das linhas de configuração atuais. O trabalho com o inetd e sua configuração é descrito em profundidade na Seção 29.2 - O Super Servidor inetd.

Em alguns casos, pode fazer mais sentido usar o daemon cron(8) para iniciar serviços do sistema. Esta abordagem tem uma série de vantagens, pois o cron executa esses processos como o dono do arquivo crontab. Isso permite que usuários comuns iniciem e mantenham algumas aplicações.

O utilitário cron fornece uma funcionalidade única, @reboot, que pode ser usado no lugar da especificação de horário. Isto fará com que o comando especificado seja executado quando o cron(8) for iniciado, normalmente durante a inicialização do sistema.