에 들어가고 싶지 않습니다 zypper up
. 대신 표시된 대로 삭제된 파일로 모든 서비스를 다시 시작하고 싶습니다 zypper ps -sss
.
비슷한 걸 할 수 있을 줄 알았는데 zypper ps -sss | tr '\n' ' ' | systemctl restart
실패했어요
인수가 너무 적습니다.
또한 파일에 쓰고 입력으로 사용해 보았지만 systemctl restart < myfile.txt
동일한 결과를 얻었습니다.
나는 결국 사용했다
systemctl restart $(zypper ps -sss | tr '\n' ' ')
두 가지 질문이 있습니다.
1) systemctl에 값을 파이프하는 방법은 무엇입니까?
2) 표시된 모든 서비스를 다시 시작하는 더 좋은 방법이 있습니까 zypper ps
?
답변1
1) 값을 어떻게 입력하나요
systemctl
?
systemctl restart
표준 입력 이외의 인수로 장치 이름을 전달할 수 없습니다 . 유닛 이름을 수집하여 $(...)
파이프를 통해 전달하는 대신 인수(예:)로 전달하는 편리한 방법이 있기 때문에 여기에는 아무런 문제가 없습니다.
2) 표시된 모든 서비스를 다시 시작하는 더 좋은 방법이 있습니까
zypper ps
?
설마. 음, 작은 개선 사항이 있습니다. tr
따옴표 없이 명령을 사용하면 $(...)
공백을 구분 기호로 사용하여 여러 인수가 제공되기 때문에 실제로 해당 명령이 필요하지 않습니다 . 따라서 이것으로 충분합니다:
systemctl restart $(zypper ps -sss)