3.5.4.4. Encontrar arquivos utilizados pelo serviço
Os scripts de inicialização exigem o carregamento de uma biblioteca de funções de um diretório dedicado e permitem a importação de configuração, ambiente e arquivos PID. As variáveis de ambiente são especificadas na linha começando com #config no cabeçalho do init script, que se traduz para a opção de arquivo de unidade EnvironmentFile. O arquivo PID especificado na linha de scripts init #pidfile é importado para o arquivo de unidade com a opção PIDFile.
A informação chave que não está incluída no cabeçalho do init script é o caminho para o executável do serviço, e potencialmente alguns outros arquivos requeridos pelo serviço. Em versões anteriores do Red Hat Enterprise Linux, os scripts de inicialização usavam uma declaração de caso Bash para definir o comportamento do serviço em ações default, tais como start, stop ou restart, bem como ações personalizadas. O seguinte trecho do script init postfix mostra o bloco de código a ser executado no início do serviço.
A extensibilidade do init script permitiu especificar duas funções personalizadas, conf_check() e make_aliasesdb(), que são chamadas a partir do bloco de funções start(). Observando mais de perto, vários arquivos e diretórios externos são mencionados no código acima: o principal serviço executável /usr/sbin/postfix, os diretórios de configuração /etc/postfix/ e /var/spool/postfix/, assim como o diretório /usr/sbin/postconf/.
Systemd suporta apenas as ações predefinidas, mas permite executar executáveis personalizados com ExecStart, ExecStartPre, ExecStartPost, ExecStop, e ExecReload opções. O /usr/sbin/postfix junto com os scripts de suporte são executados no início do serviço. A conversão de scripts complexos de inicialização requer a compreensão do propósito de cada declaração no script. Algumas das declarações são específicas para a versão do sistema operacional, portanto, não é necessário traduzi-las. Por outro lado, alguns ajustes podem ser necessários no novo ambiente, tanto no arquivo de unidade quanto no executável do serviço e nos arquivos de suporte.