monit을 사용하여 시스템 단위 확인

monit을 사용하여 시스템 단위 확인

사용자 네임스페이스 아래에 systemd 단위가 있는 프로그램을 확인해야 합니다. 여기에 내 monit conf가 있습니다(systemd conf는 문제 없이 작동합니다).

check program foo with path "/usr/bin/systemctl --user -q is-active foo" as uid pioz and gid pioz
  start program = "/usr/bin/systemctl --user start foo" as uid pioz and gid pioz
  stop program = "/usr/bin/systemctl --user stop foo" as uid pioz and gid pioz
  if status != 0 then restart
  if 5 restarts within 5 cycles then timeout

이 conf는 오류가 발생하여 작동하지 않습니다 Failed to connect to bus: No such file or directory. follow 명령을 실행하면 동일한 오류가 발생하므로 명령이 작동하지 않는 sudo /usr/bin/systemctl --user -q is-active foo것 같습니다 . as uid pioz and gid pioz이렇게 구성을 변경하면 모든 것이 잘 작동합니다.

check program foo with path "/bin/su -c '/usr/bin/systemctl --user -q is-active foo' pioz"
  start program = "/bin/su -c '/usr/bin/systemctl --user start foo' pioz"
  stop program = "/bin/su -c '/usr/bin/systemctl --user stop foo' pioz"
  if status != 0 then restart
  if 5 restarts within 5 cycles then timeout

as uid왜 작동하지 않는지 아시나요 ?

관련 정보