2013-01-03 23 views
8

nohup.out değil çıkış yapar i var çalıştıran start.sh bash komut olsa CRON ubuntu sunucuda İŞ kodcron işi

ait

start.sh feryat söz içerir hatları start.sh ait

yolu /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 

benim is olduğunu o çıkarır i komut satırında start.sh benim kendimi çalıştırırsanız dava olduğunu içinde

dosya nohup.out ama (komut ince çalışan rağmen) o cronjob ile bu bash dosyasını yürütür zaman onun değil

nohup.out üreten nasıl ben nohup.out bu cronjobı çıkışını alabilirim?

+1

Bu nohup.out dosyasını nasıl/nerede oluşturuyorsunuz? cron işlerinin varsayılan çalışma dizininin altında çalıştırıldıkları kullanıcı kimliğinin homedirectory olduğunu unutmayın. Bu dosya için göreceli yollar kullanıyorsanız, hesabınızın ana dizini göreceksin, kendi kabuk geçerli dizinin değil, kendi kabuk geçerli dizini değil –

+0

@MarcB ben linux üzerinde noob .. nohup, örneğin nohup tarama 3 & i crontab bu katma 40 10 * * * /home/ubuntu/folder1/folder2/start.sh –

+1

Bilginize: yapı 'piton init.py & bekleme $' (iki hat üzerinde yayılmış) anlamsızdır; '&' bırakın ve 'bekle 'kaldırın. Probleminizde bir faktör değil; ayrıca yazılı olarak çalışır. Ama bu anlamsız. –

cevap

14

Neden nohup kullanıyorsunuz? nohup, çalışan terminalin asılma sinyalini yok saymasını söyleyen bir komuttur. Bununla birlikte, cron, hiçbir kapanış sinyali içermez, çünkü bir terminal oturumuyla bağlantılı değildir. yerine Bu durumda

:

nohup scrapy crawl first & 

Muhtemelen istiyorum:

scrapy crawl first > first.txt & 

son örneği de terminalde çalışır, ancak terminali, takıntı sinyalini kapattığınızda (hup) programı sonlandıran gönderilir.

İlgili konular