2011-10-26 3 views
0

저는 파이썬에 매우 익숙하며 스스로 확장되었습니다. 나는 cURL을 사용하여 Twitter에서 JSON 입력 스트림을 폴링하고 CSV 파일로 변환하는 스크립트를 해킹했습니다.백그라운드에서 파이썬 스크립트를 실행하는 출력 파일이 생성되지 않았습니다.

전경의 $ 프롬프트에서 실행할 때 스크립트가 완벽하게 작동하지만 nohup을 사용하여 백그라운드에서 실행될 때 0 바이트 파일을 만들지 않습니다. CSV 헤더도 작성되지 않습니다.

import pycurl, json, csv 
from datetime import * 

outfile_path='/home/XXXX/twitter-feed.csv' 
writer = csv.writer(open(outfile_path, 'wb')) 

headers = ["user","timestamp","X","Y"] 
writer.writerow(headers) 

나는 이것이 해결하기 위해 눈부시게 분명하지만 어떤 도움이 정말 감사하겠습니다 같은데요 :

는 여기에 코드입니다.

+0

스크립트를 어떻게 시작합니까? 명령 행 pls를 표시하십시오. – hochl

+0

"/full_path/myscript.py &"와 "nohup /full_path/myscript.py"모두 시도했습니다. – Adrian

답변

0

백그라운드에서 스크립트를 어떻게 시작합니까? python script.py &로 실행하지 않으면 경로에 문제가있는 것 같습니다. 또한 확인, 스크립트 파일의 첫 번째 줄에

#!/usr/bin/python

를 추가하려고

chmod +x script.py

하여 파일을 실행하고

/full/path/to/script.py

에 의해 실행 저 pycurl는 환경에 python's path에 있습니다. 그는 스크립트가 실행 중입니다.

+0

고마워요! 나는 스크립트/chmod 제안을 다룰 것이고 리다이 팅 출력은 출력을 생성하지 않는다. – Adrian

+0

출력이 없다면 pycurl이 pythonpath에있을 것입니다. 그렇지 않으면 ImportError가 발생합니다. 이상한. 어쩌면 스크립트가 전혀 실행되지 않을 수 있습니까? – rplnt

+0

pycurl은 PYTHON 경로 인 – Adrian

0

/full/path/to/script.py > /home/xxx/output.log 2>&1 모든 정보와 도움을 주셔서 감사합니다, 즉

아무것도 할 수없는 경우 (또는 시도하기 전에) 스크립트의 출력을 캡처하려고합니다 ("충돌"이 경우는 역 추적을 인쇄합니다). 나는 잘 작동하는 CRON을 사용하여 스크립트를 시작하여 문제를 해결했습니다.

스크립트가 백그라운드에서 실행되는 것을 좋아하지 않는 이유는 모르지만 다른 날을 기다릴 수있는 작업 이후로는 알 수 없습니다.

감사합니다.

-1

CSV 파일에 더 많은 것을 쓰면이 문제가 생겼습니다. ,,,, 저는 여러분의 비단뱀이 백그라운드에서 실행되고 "kill + pid"로 끝난다고 생각합니다 ... it csv.write가 버퍼 스트림을 가지고있는 것처럼 보입니다. 백그라운드 프로세스를 죽인 다음 스트림이 사라진다면,이 것을 확인하기 위해 CSV 파일에 더 많은 것을 쓸 수 있습니다.

+0

에있는 /usr/lib/pymodules/python2.7에 설치되어 있고 버퍼 스트림의 크기는 16k이며, – wjho

관련 문제