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

你为什么用nohupnohup是一个命令,告诉正在运行的终端忽略挂断信号。cron但是,没有挂断信号,因为它没有链接到终端会话。

在这种情况下,而不是:

nohup scrapy crawl first &

你可能想要:

scrapy crawl first > first.txt &

最后一个示例也适用于终端,但是当您关闭终端时,hup会发送挂断信号 ( ),从而结束程序。

于 2013-01-03T20:20:29.213 回答