Crontab引导脚本运行但没有任何反应

时间:2019-09-05 17:30:30

标签: python bash cron nvidia-jetson

我想在启动NVIDIA Nano Jetson时运行python脚本。

python脚本使用以下命令将LSTM生成的文本打印到收据打印机:

While True:
    textfile = open("test1.txt","w")
    poem = on_epoch_end()
    print(poem)
    textfile.write(poem)
    subprocess.run(["lp","-o", "media=X72MMY2000MM", "test1.txt"])

on_epoch_end()使用Keras生成文本。

当手动运行脚本时,此方法工作正常,它在收据打印机上连续打印文本。但是,当我将crontab设置为在启动时使用以下代码运行脚本时:

@reboot (sleep 80 && cd /home/lauge/Downloads/lstmtextfinal/ && python3 generator.py >> /home/lauge/generator_log.txt &)

什么都没发生。我添加了睡眠计时器,以确保脚本已准备就绪。当检查脚本是否在启动时运行时:

ps ax | grep generator.py

它表明sleep定时器都在工作,并且在定时器用完后,该脚本正在python3中运行。 我现在不确定自己在做什么错。

1 个答案:

答案 0 :(得分:0)

cron运行时未附加TTY(不是正常登录), 所以 您可能需要将代码包装到Shell脚本中,然后首先模仿正常登录名,然后运行代码,例如:

cronjob_1.sh:

#!/bin/tcsh
source /home/username/.cshrc
source /home/username/.login
cd ~/tmp
nice time python /home/username/path/to/your/script.py

#!/bin/bash
source /home/username/.profile
source /home/username/.bashrc
cd ~/tmp
nice time python /home/username/path/to/your/script.py
  • 或您的代码是什么-
    取决于您选择的外壳。

在您的crontab中-诸如此类:

18  *   *   *   *   ~username/cronjobs/cronjob_1.sh