我想在启动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中运行。 我现在不确定自己在做什么错。
答案 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