SSH를 통해 로그인 할 때 시작 작업에서 출력을 얻는 방법은 무엇입니까? 확신합니다. 내가 사용하는 간단한 작업

작업 정의가 수행하는 작업을 모니터링하기 위해 작업의 텍스트 출력을보고 싶습니다. 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 testinitctl 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 / 아래 파일에 작업의 출력을 기록합니다.

Upstart의 최신 문서 (요리 책)

그런 다음 파일에 꼬리말을 붙여 파일에 쓰여지는 모든 새 텍스트를 볼 수 있습니다

예를 들면 다음과 같습니다.

tail -f /var/log/upstart/test.log & # tail the output
initctl emit test