【问题标题】:cron job doesn't output to nohup.outcron 作业不输出到 nohup.out
【发布时间】:2012-12-18 04:33:03
【问题描述】:

我有 start.sh bash 脚本,通过 CRON JOB 在 ubuntu 服务器上运行

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 的输出

【问题讨论】:

  • 你是如何/在哪里创建这个 nohup.out 文件的?请记住,cron 作业的默认工作目录是运行它们的用户 ID 的主目录。如果您为此文件使用相对路径,则您将相对于帐户的主目录,而不是您自己的 shell 当前目录
  • @MarcB 我是 linux 上的菜鸟 .. 每行都在 nohup 中附加输出,例如 nohup scrapy crawl 3rd & 我在 crontab 40 10 * * * /home/ubuntu/folder1/folder2/start 中添加了这个.sh
  • 仅供参考:构造python init.py & wait $!(分布在两行)是没有意义的;删除& 并删除wait。这不是您的问题的一个因素;它也可以按书面方式工作。但这毫无意义。

标签: python bash ubuntu cron crontab


【解决方案1】:

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

在这种情况下,而不是:

nohup scrapy crawl first &

你可能想要:

scrapy crawl first > first.txt &

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-05
    • 2021-08-09
    • 2011-07-15
    • 2016-07-26
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 2013-02-14
    相关资源
    最近更新 更多