작업 정의가 수행하는 작업을 모니터링하기 위해 작업의 텍스트 출력을보고 싶습니다. SSH를 통해 로그온하면 가능하지 않은 것 같습니다.
Natty 11.04 에서이 문제가 발생하지만 더 일반적인 문제라고 확신합니다.
내가 사용하는 간단한 작업 파일 (filename /etc/init/test.conf
) :
description "test"
start on test
console owner
kill timeout 5
task
script
/bin/echo Gotcha...
end script
내 목표는 수행 할 때 텍스트 “잡았다을 …”보는 것이다 initctl emit test
나 initctl start test
. 그러나 그것은 효과가 없습니다.
내가 지금까지 시도한 것 :
- “콘솔 소유자”대신 “콘솔 출력”
- 스크립트 대신 “exec / bin / echo Gotcha …”… 스크립트 종료
답변
init (pid 1)가 쉘을 사용하지 않고 (stdout / stderr가없는) 서비스를 실행하기 때문에 (이전 /etc/init.d
스타일 스크립트 와 같이 ) 현재 생성 된 출력을 볼 수있는 방법이 없습니다. (이 기능은 자주 요청되며 Upstart를 위해 할 일 목록에 있습니다.)
이 문제를 해결하려면 작업 시작시 출력 리디렉션을 강제하는 것이 좋습니다.
script
exec >/var/log/test.debug 2>&1
echo Gotcha...
end script
답변
12.04부터 (아마도), upstart는 기본적으로 / var / log / upstart / 아래 파일에 작업의 출력을 기록합니다.
그런 다음 파일에 꼬리말을 붙여 파일에 쓰여지는 모든 새 텍스트를 볼 수 있습니다
예를 들면 다음과 같습니다.
tail -f /var/log/upstart/test.log & # tail the output
initctl emit test