서버에 직접 실행하여 서버를 실행할 때 잘 작동하는 스크립트가 있지만 지속적인 통합 서버 인 Hudson 이 스크립트를 실행할 때 문제 가 있습니다.
임베디드 리눅스 시스템 (대상)에서 테스트를 자동화하고 있습니다. 대상은 직렬을 통해 서버 A (RHEL 5)에 연결되며 미니 컴을 통해 작동합니다. 서버 B (FC 12)는 실제로 대상에서 실행되는 테스트를 빌드하고 서버 A에 ssh 할 수 있습니다. 서버 C (RH)는 Hudson을 호스트하고 서버 B는 슬레이브로 사용합니다.
실제 대상에 필요한 모든 것을 수행하기 위해 runscript (http://linux.die.net/man/1/runscript) 스크립트를 작성했습니다. 이미지를 부팅하고 서버 B에서 디렉토리를 마운트하고 테스트를 실행합니다. 서버 B의 bash 스크립트는 실행 스크립트와 함께 일부 수행 조치와 함께 minicom을 호출합니다. 서버 B에 bash 스크립트가 있습니다.
ssh -t -t ServerA bashScript.sh
해당 테스트를 대상에서 실행하십시오. 나는 서버 C에 있으며 서버 B에 ssh'ing하고 runscript로 미니 컴을 실행하는 서버 A에 ssh의 스크립트를 실행하여 해당 테스트를 실행할 수 있습니다. 아휴. 검토:
서버 A : Hudson은 슬레이브 메커니즘을 사용하여 서버 B에 ssh합니다.
서버 B : kickOffTests.sh
라인ssh -t -t ServerA runTests.sh
서버 A : runTests.sh
호출하는 펄 스크립트를 호출minicom -S my.script ttyE1
부팅 후 대상 : 테스트가 수행되는 서버 B에서 디렉토리를 마운트하고 해당 디렉토리로 들어갑니다. 테스트를 실행하는 또 다른 bash 스크립트를 호출하며 컴파일 된 C 실행 파일입니다.
지금 때 나는 이 스크립트의 나 자신을 실행, 그들은 그들이해야 할. 그러나, 허드슨은의 C 실행 파일을 호출하는 "또 다른 bash는 스크립트"에서 선에 대한 불만 사항을 제기 전무 세션에서 이상 같은 일을 시도 ./executable
와 함께,./executable: cannot execute binary file
나는 아직도 리눅스에 대해 배울 것이 많지만 허드슨이 콘솔에 연결하지 않은 결과라고 생각한다. 허드슨이 노예를 통제하기 위해 무엇을하는지 정확히 모르겠습니다. export TERM=console
kickOffTests.sh를 실행하기 직전에 구성 에서 라인 을 사용해 보았지만 문제는 남아 있습니다.
누구나 무슨 일이 일어나고 있고 어떻게 해결할 수 있는지 설명해 줄 수 있습니까? 이 방정식에서 서버를 제거 할 수 없습니다. 미니 컴을 방정식에서 빼는 것이 가능할 수도 있지만,이 프로젝트에 알려지지 않은 시간이 추가 될 것이므로 이미 가지고있는 것을 사용하는 솔루션을 선호합니다.