GNOME의 Alt + F2와 같이 터미널에서 명령을 실행하여 stdout 및 stderr을 systemd의 로그로 리디렉션하는 쉬운 방법이 있습니까?
나는 gmrun(출력을 리디렉션하지 않음), gtk-launch(/usr/share/applications의 .desktop 파일에서만 작동)를 시도했습니다.
이를 수행하는 GNOME 또는 systemd 명령이 있습니까?
답변1
나는 당신이 이 logger(1)
유틸리티를 사용해야 한다고 생각합니다. systemd
시스템이 를 사용하든 사용하지 않든 작동할 것입니다 rsyslogd
.
your_prog 2>&1 | logger -t your_prog
systemd가 있는 시스템에는 표준 API 대신 systemd를 특별히 사용하는 systemd-cat
"스트리밍" 로깅 API( sd_journal_stream_fd(3)
, ) 도 있습니다 ./run/systemd/journal/stdout
syslog(3)
your_prog 2>&1 | systemd-cat -t your_prog
systemd-cat -t your_prog your_prog
다른 검색을 저장하려면: stdout 대신 stderr을 파이프하려면 다음을 사용할 수 있습니다.
log_stderr(){ { "$@" 2>&1 >&3 3>&- | logger -t "$1"; } 3>&1; }
log_stderr your_prog
답변2
불행하게도 가장 사용자 친화적인 모드는 기본적으로 사용되지 않습니다.
기본적으로 생성된 서비스
systemd-run
의 기본 유형은simple
[...] 입니다 . 지정된 명령줄이 성공적으로 시작된 경우에만 성공적인 반환이 이루어지도록exec
서비스 유형(예:--property=Type=exec
) 을 사용하는 것이 좋습니다.systemd-run
이 보다 유용한 설정은 나중에 추가되었습니다. 개인적으로 저는 이 세부사항을 기억하지 못할 것 같습니다. 그래서 저는 짧은 래퍼 스크립트를 사용하는 것을 선호합니다.