O que esses parâmetros fazem?

0

Qual é o significado das opções e parâmetros deste comando?

exec su -s /bin/sh -c 'exec "$0" "$@"' root -- /opt/nsq/bin/nsqd

Especificamente, a parte -- e o que exec "$0" "$@" devem fazer.

Eu sei que $0 define um loop para o script continuar em execução.

Você pode ignorar a parte /opt/nsq/bin/nsqd . Este é o aplicativo que estou executando.

    
por user419758 17.02.2015 / 13:58

1 resposta

0
exec

O comando executado, su , substitui o shell sem criar um novo processo.

sudo -s /bin/sh -c 

O usuário substituto executa o shell especificado, / bin / sh e executa o seguinte comando.

exec "$0" "$@"

Executar o comando $0 , o nome do script, (sua primeira variável, por exemplo, /opt/nsq/bin/nsqd )

"$@"

com todos os argumentos, usando a cotação apropriada

--

Delimita a lista de opções. Tudo seguindo, mesmo se eles começam com um hypen, são considerados operandos. Por exemplo, sort -- -r lê o arquivo chamado -r em vez de tentar usar '-r' como uma opção.

    
por 17.02.2015 / 15:58