bash 스크립트가 출력을 systemd 로그로 보내도록 하는 간단하지만 올바른 방법은 무엇입니까?

bash 스크립트가 출력을 systemd 로그로 보내도록 하는 간단하지만 올바른 방법은 무엇입니까?

나는 bash 스크립트 상단에 이와 같은 것을 넣었습니다. 이것은 여전히 ​​systemd에서 작동합니다. (오래 사용해왔는데 잘 이해가 안가네요. 그냥 효과가 있어서 사용합니다.)

exec 5> >(logger -t $0)
BASH_XTRACEFD="5"
PS4='$LINENO: '
set -x

systemd를 사용하더라도 위 명령은 Journalctl에서 예상되는 출력을 제공합니다. 하지만 대신에 이와 같은 것을 사용해야 할 것 같습니다.

systemd-cat -t $0

systemd에서 현재 로깅 명령을 어떻게 변경해야 합니까?

(저는 몇 줄을 붙여넣고 로그에 일부 출력을 얻을 수 있는 똑같이 간단한 솔루션을 찾고 있습니다.)

답변1

나는 주장할 것이다 logger: 그것은 당신이 찾은 systemd 로그를 포함하여 모든 표준 호환 로깅 시스템에서 작동합니다. 이를 직접 사용하면 systemd-cat실제로 아무것도 추가하지 않고도 스크립트를 systemd에 맞게 만들 수 있습니다.loggersystemd보다 유연하고 systemd 특정 기능에 대한 더 나은 지원을 제공합니다.systemd-cat그 자체.

관련 정보