systemctl: 유닛 이름의 패턴으로 필터링

systemctl: 유닛 이름의 패턴으로 필터링

인수 없이 실행하면 systemctl시스템의 각 장치 상태를 보여주는 멋진 테이블이 출력됩니다.

$ systemctl

  UNIT                       LOAD   ACTIVE     SUB       DESCRIPTION
  console-setup.service      loaded active     exited    Set console font and keymap
  cron.service               loaded active     running   Regular background program processing daemon
  dbus.service               loaded active     running   D-Bus System Message Bus
  myapp-component1.service   loaded active     running   Application - Component 1
● myapp-component2.service   loaded active     failed    Application - Component 2
  [...]
  dbus.socket                loaded active     running   D-Bus System Message Bus Socket
  myapp-socket1.socket       loaded active     listening Application - a socket
  [...]
  fstrim.timer               loaded active     waiting   Discard unused blocks once a week
  myapp-periodic.timer       loaded active     waiting   Application - periodic job
  [...]

내 애플리케이션은 systemd에서 조정하는 일련의 서비스(타이머, 소켓 등)로 구성됩니다. 애플리케이션의 각 하위 구성 요소에 대해 단위 이름은 "myapp-"으로 시작됩니다. systemctl내 애플리케이션 구성 요소의 상태를 한눈에 관찰하는 데 사용하고 싶습니다 .

systemctl이름이 패턴과 일치하는 장치(예: )만 나열되도록 요구하는 방법이 있습니까 'myapp-*'?

$ systemctl <some-option-asking-for 'myapp-*`>

  UNIT                       LOAD   ACTIVE     SUB       DESCRIPTION
  myapp-component1.service   loaded active     running   Application - Component 1
● myapp-component2.service   loaded active     failed    Application - Component 2
  myapp-socket1.socket       loaded active     listening Application - a socket
  myapp-periodic.timer       loaded active     waiting   Application - periodic job

노트systemctl:결과 집합을 직접 필터링해야 하는 방법에 관심이 있습니다. column -t전체 출력에 대한 Grepping 및 재형식 지정(예: via ) systemctl에는 피하고 싶은 극단적인 경우가 있습니다.

답변1

systemctl'd 기본 명령은 다음과 같습니다.list-units, 선택적 인수로 패턴이 필요하므로

systemctl list-units 'myapp-*'

당신이 원하는 것을 할 것입니다.

systemctl예를 들어 많은 명령이 패턴을 지원합니다.

systemctl status 'myapp-*'

"myapp-"으로 시작하는 모든 장치의 상태가 표시됩니다.

관련 정보