Saída de piping do zypper ps -sss na reinicialização do systemctl

1

Eu não quero reiniciar o servidor após um zypper up . Em vez disso, quero reiniciar todos os serviços usando arquivos excluídos, conforme mostrado por zypper ps -sss .

Eu achei que poderia fazer algo como zypper ps -sss | tr '\n' ' ' | systemctl restart , que falha com

Too few arguments.

Eu também tentei escrever em um arquivo e usá-lo como entrada systemctl restart < myfile.txt com o mesmo resultado.

Acabei usando

systemctl restart $(zypper ps -sss | tr '\n' ' ')

Então, duas perguntas:

1) Como posso canalizar valores em systemctl?

2) Existe uma maneira melhor de reiniciar todos os serviços mostrados por zypper ps ?

    
por Arigion 13.11.2018 / 17:31

1 resposta

1

1) How can I pipe values into systemctl?

Você não pode, systemctl restart considera os nomes das unidades como argumentos, não da entrada padrão. Não há nada de errado com isso, já que você tem maneiras convenientes de coletar os nomes das unidades e passá-las como argumentos (ou seja, $(...) ) em vez de através de um pipe.

2) Is there a better way to restart all services shown by zypper ps?

Não realmente. Bem, há uma pequena melhoria na medida em que você realmente não precisa do comando tr , pois usar $(...) sem aspas indicará vários argumentos, usando qualquer espaço em branco como separador. Então, isso deve ser o suficiente:

systemctl restart $(zypper ps -sss)
    
por 13.11.2018 / 17:47