2013-01-03 4 views
8

를 to nohup.out은 출력하지 않습니다 나는이 실행 start.sh bash는 스크립트하지만 CRON 우분투 서버에서 작업 코드cron 작업은

start.sh 기재하는 포함 라인 start.sh

경로 /home/ubuntu/folder1/folder2/start.sh

#!/bin/bash 

crawlers(){ 
    nohup scrapy crawl first & 
    nohup scrapy crawl 2nd & 
    wait $! 
    nohup scrapy crawl 3rd & 
    nohup scrapy crawl 4th & 
    wait 
} 

cd /home/ubuntu/folder1/folder2/ 
PATH=$PATH:/usr/local/bin 
export PATH 

python init.py & 
wait $! 
crawlers 
python final.py 

내입니다 이 출력 내가 명령 줄에 start.sh 내 자신을 실행하면 고소는에

파일 nohup.out은하지만 (스크립트는 잘 실행되고 있지만)이 cronjob를 통해 bash는 파일을 실행할 때이 아니

nohup.out은 생산 어떻게 nohup.out은 이 cron 작업의 출력을받을 수 있나요?

+1

how/where이 nohup.out 파일을 어떻게 만드십니까? cron 작업의 기본 작업 디렉토리는 실행중인 사용자 ID의 홈 디렉토리임을 기억하십시오. 이 파일에 대한 상대 경로를 사용하는 경우 자신의 쉘 현재 디렉토리가 아닌 계정의 홈 디렉토리에 상대적입니다. –

+0

@MarcB Linux에서 noob입니다. 각 행은 nohup에서 출력을 추가합니다 (예 : nohup scrapy). 기어 3 & 내가 crontab을이 추가 40 10 * * * /home/ubuntu/folder1/folder2/start.sh –

+1

참고 :! 구조물'파이썬 init.py 및 대기 $'(두 줄에 걸쳐) 무의미하다. '&'를 버리고'wait'을 제거하십시오. 그것은 당신의 문제에 영향을 끼치 지 않습니다. 그것은 또한 서면으로 작동합니다. 그러나 그것은 무의미합니다. –

답변

14

nohup을 왜 사용하고 있습니까? nohup은 실행중인 터미널에 정지 신호를 무시하도록 지시하는 명령입니다. 그러나 터미널 세션에 연결되어 있지 않으므로 cron에는 정지 신호가 없습니다. 대신이 경우

:

nohup scrapy crawl first & 

당신은 아마 원하는 :

scrapy crawl first > first.txt & 

마지막 예는 터미널에서 작동하지만 당신은 터미널의 행업 신호를 닫을 때 (hup)가 전송되어 프로그램을 종료합니다.

관련 문제