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



11.5 Inicializando Serviços editar

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

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

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.