0

我想在启动我的 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

它表明睡眠定时器都在工作,并且在定时器用完后,脚本正在 python3 中运行。我不确定我在这一点上做错了什么。

4

1 回答 1

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
于 2019-09-05T19:05:34.637 回答