사용자 네임스페이스 아래에 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
왜 작동하지 않는지 아시나요 ?