15

ubuntuサーバーでCRON JOBを介して実行されているstart.sh bashスクリプトがあります

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でこのcronjobの出力を取得するにはどうすればよいですか?

4

1 に答える 1

25

なぜあなたは使用していnohupますか?nohup実行中の端末にハングアップ信号を無視するように指示するコマンドです。cronただし、ターミナル セッションにリンクされていないため、ハングアップ シグナルはありません。

この場合、代わりに:

nohup scrapy crawl first &

あなたはおそらく欲しい:

scrapy crawl first > first.txt &

最後の例は端末でも機能しますが、端末を閉じるとハングアップ信号 ( hup) が送信され、プログラムが終了します。

于 2013-01-03T20:20:29.213 に答える