시스템에서 실행되는 스크립트에서 stdout을 읽는 방법은 무엇입니까?

시스템에서 실행되는 스크립트에서 stdout을 읽는 방법은 무엇입니까?

에 배치한 스크립트를 디버깅하고 싶습니다 /etc/pm/sleep.d. 내 스크립트에서는 echo상태를 보고하는 명령을 실행합니다 .

이 출력을 어디서 읽을 수 있나요? 아마도 dmesg파일이나 같은 것으로 생각하고 있습니까 /var/log?

이것이 더 좋은 방법인가요? 시스템에서 실행되어야 하는 bash 스크립트(예: /etc/init.d/또는 . Xinit)를 디버깅할 때 표준 관행은 무엇입니까?

답변1

를 사용하는 대신 을 사용하여 디버깅 목적으로 시스템 로그에 명령을 출력 echo할 수 있다는 것을 알았습니다 .logger

logger "Oh no"

그런 다음 /var/log/syslog에서 출력을 확인할 수 있습니다.

sudo tail /var/log/syslog

답변2

이미 언급했듯이 스크립트에는 echo 문이 있습니다.

이제 shebang 이후 파일 시작 부분에서 스크립트를 편집하십시오.

> /tmp/myoutput

myoutput은 /tmp 마운트의 파일 이름일 뿐이므로 원하는 것을 선택할 수 있습니다.

그 후에는 스크립트에 다음과 같은 echo 문이 있는 경우

echo "something"

그것을로 바꾸다

echo "something" >> /tmp/myoutput

그게 전부입니다. 스크립트가 실행될 때마다 스크립트에 발생한 일에 대한 최신 트랙을 갖게 됩니다.

관련 정보