Linux /etc/init.d - link simbólico, link físico ou real?

5

Eu tenho um pacote Debian e RPM que requer que um script start / stop seja adicionado ao diretório /etc/init.d. Recentemente, fui informado por um desenvolvedor remoto que "aqueles que sabem" sabem que a "melhor prática" é realmente instalar a inicialização no diretório /etc/init.d em vez de usar links simbólicos, especialmente quando o pacote pode ser instalado em uma partição diferente. Eu sempre usei links simbólicos. Um "ls -la" mostra muitos pacotes usando links simbólicos.

Existe algum guru do Unix / Linux disponível para dar uma resposta definitiva sobre qual a melhor prática em relação aos scripts de inicialização no diretório /etc/init.d. A melhor prática é um link simbólico, link físico, arquivo real ou realmente importa?

Seria ótimo se você pudesse citar uma fonte. Eu tenho google este tópico, mas não consigo encontrar uma resposta.

    
por user2569618 01.09.2015 / 00:15

3 respostas

3

Os padrões da LSB ( link ) indicam que é aceitável scripts /etc/init.d para serem links simbólicos:

An init.d file is installed in /etc/init.d (which may be a symlink 
to another location) . . .

Mas honestamente, acho que eu só vi aplicativos de terceiros usando links simbólicos.

Editar: palavreado idêntico nas especificações 3.0 ( link )

    
por 01.09.2015 / 00:58
3

A única maneira que eu já vi em seus scripts feitos é ter um arquivo regular em /etc/init.d e um symlink para esse arquivo no diretório para cada nível de execução.

Um link simbólico de /etc/init.d para outro local pode funcionar. Mas não seria uma prática normal. E se o link estiver apontando para fora da partição raiz, você terá uma configuração que quebra facilmente.

Eu recomendaria ficar com um arquivo em /etc/init.d , como outros serviços fazem.

    
por 01.09.2015 / 00:45
3

Eu tenho visto problemas com o RHEL7 não seguindo Symlinks para scripts em /etc/init.d/ Os serviços não estavam sendo iniciados na inicialização e alguns comandos "início do serviço XXX" falharam.

A única maneira de consertá-lo era copiar o arquivo para o diretório init.d no lugar do symlink. Portanto, embora seja conveniente usar apenas um link simbólico, copiar o arquivo diretamente é provavelmente uma prática melhor.

    
por 15.12.2015 / 04:58