2012-07-19 3 views
12

좋아요, 그래서 웹에서 둘러 보았지만 많은 사람들이이 문제를 겪은 것처럼 보이지 않습니다.하지만 우리가하는 일에 뭔가 다른 것이 있습니다.Capistrano 배포 제한 시간

설정/deploy.rb :

## Excerpt 
task :big_delay, :roles => :web do 
    run "sleep 480" 
    run "echo Meow Meow Meow" 
end 

그리고 stupid_script.sh :

#!/bin/sh 
ssh foo 'sleep 480; echo Meow Meow Meow' 

내가 mananged 한

내가 유용한 테스트 케이스입니다 생각에 그것을 아래로 증류

여기서 foo는 배포 할 서버의 이름입니다.

둘 다 실행하면 다른 상자에 연결하고 8 분 동안 아무 작업도 수행하지 않은 다음 쓸모없는 텍스트를 뱉어 완성합니다.

stupid_script가 작동하고 cap 작업이 실패합니다. 원격 명령이 ps xf로 끝나는 것을 볼 수 있지만 cap이 더 이상 알려지지 않는 것 같습니다. 절전 모드가 240 대신 20 인 경우 캡 작업이 정상적으로 작동합니다.

분명히이 작업은 매우 쓸모가 없지만, 우리는이 작업을 유발하는 값 비싼 물건을 배포 할 필요가 있습니다. 그리고 이것을 ssh에 대한 비난을 배제하기 위해 만들었습니다.

또 다른 데이터 요소, 상자에 ssh로 넣은 다음 코드를 배치 한 다음 거기에서 cap 배포를 실행하면 다른 데이터 요소가 작동합니다.

그래서 ... ssh와 capistrano 사이에서 진행되는 이상한 상호 작용이있는 것 같습니다. 생각 하시겠습니까?

+3

문제가 해결 될지 모르겠으나 SSH 연결이 시간 초과 될 수 있으므로 답을 입력하지 마십시오. 서버의/etc/ssh/sshd_config에서 ClientAliveInterval 및 ClientAliveCountMax를 설정해보십시오. http://www.cyberciti.biz/tips/open-ssh-server-connection-drops-out-after-few-or-n-minutes-of -inactivity.html – choover

+0

Keepalive 설정을 시도하거나 일시 중지 스크립트를 사용하여 간헐적으로 인쇄물을 인쇄 할 수 있습니다. 이것은 회전하는 대기 휠, 일련의 점 또는 연결을 나뭇 가지로 묶는 캐리지 리턴 일 수 있습니다. – tadman

+0

내가 틀릴 수도 있지만, 같은 상자에 sshs하고 동일한 명령을 실행하고 결코 실패하지 않는 ./stupid_script.sh를 사용하여 ssh 시간 초과 문제를 제외 시켰습니다. – psycotica0

답변

10

서버의/etc/ssh/sshd_config에 ClientAliveInterval과 ClientAliveCountMax를 설정하십시오. 그 변경 사항이 적용될 때까지 배포시 "assets : precompile"과 똑같은 문제가있었습니다.

+0

자산을 미리 컴파일하는 데 동일한 문제가있어서 해결했습니다. –

+0

카피 스트라 노가 모든 로컬 SSH 설정을 무시한다는 것은 어리석은 것처럼 보입니다 ... 어쨌든, 그것은 일을 향상시키는 것 같습니다. – psycotica0

+0

ClientAliveCountMax 값을 변경할 필요가 없습니다. 대부분의 경우 3의 기본값으로 충분합니다. –