O que #! / bin / sh \ nexem 0 "/usr/sbin/policy-rc.d 'do?

1

Ao solucionar uma falha na implantação do Docker, notei que essa linha estava no Dockerfile. O que a linha a seguir faz exatamente?

#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d
    
por david 03.11.2016 / 01:16

1 resposta

2

Existem quatro componentes para esse código:

1). #!/bin/sh é um "shebang" que aponta para o interpretador específico no qual o código subseqüente é executado. Neste caso, o código que vem depois do shebang é enviado para Sh, que é provavelmente Bash (provavelmente o shell mais comum do Linux).

2). \n é um caractere especial que define uma nova linha.

3). exit 0 é usado em scripts para definir como termina. Geralmente, um código de saída igual a zero significa que o programa foi finalizado com sucesso (nem sempre é verdade, portanto tenha isso em mente).

4). > é um redirecionamento do Linux. Existem vários operadores que podem manipular Stdin, Stdout e Stderr. Neste caso, os resultados de Stdin (à esquerda do operador) são enviados para um arquivo (definido pelo nome do arquivo à direita do operador). É assim que esse arquivo específico é atualizado.

Assumindo que esta é uma distribuição Debian / Ubuntu, o policy-rc.d determina se um daemon inicia / reinicia se acabou de ser instalado / atualizado. Ele faz isso lendo o código de saída, portanto, neste exemplo, "0" significaria que é OK iniciar automaticamente.

Geralmente, em ambientes chrooted, esse código de saída é definido como 101 para impedir que os daemons sejam iniciados. Aqui está um link útil para mais informações: link

    
por 05.11.2016 / 12:29

Tags