Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(linux)延迟后运行脚本的bash脚本_Linux_Bash_Cron - Fatal编程技术网

(linux)延迟后运行脚本的bash脚本

(linux)延迟后运行脚本的bash脚本,linux,bash,cron,Linux,Bash,Cron,在使以下各项正常工作时遇到问题。我在重新启动时添加了一个cron作业,如下所示 @reboot /home/pi/bash_script 执行包含以下内容的bash脚本 #!/bin/bash /bin/sleep 60 && /usr/bin/python /home/pi/foo.py 我还对该文件执行了chmod x,使其可执行 但它似乎不起作用。有人能识别我脚本中的任何错误或建议我可能采取的故障排除步骤吗 这是我得到的错误日志 Traceback (most rec

在使以下各项正常工作时遇到问题。我在重新启动时添加了一个cron作业,如下所示

@reboot /home/pi/bash_script
执行包含以下内容的bash脚本

#!/bin/bash

/bin/sleep 60 && /usr/bin/python /home/pi/foo.py
我还对该文件执行了chmod x,使其可执行

但它似乎不起作用。有人能识别我脚本中的任何错误或建议我可能采取的故障排除步骤吗

这是我得到的错误日志

Traceback (most recent call last):
  File "/home/pi/foo.py", line 70, in <module>
    main()
  File "/home/pi/foo.py", line 65, in main
    root = tk.Tk()
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1712, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sy$
_tkinter.TclError: no display name and no $DISPLAY environment variable

试着在你的脚本中加入这个

#!/bin/bash
exec bash -l -c '/bin/sleep 60 && /usr/bin/python /home/pi/foo.py'
或作为crontab命令:

/bin/bash -l -c '/bin/sleep 60 && /usr/bin/python /home/pi/foo.py'

失败的是Bash脚本还是Python?脚本运行时是否存在/home/pi/foo.py?是否安装/安装在家中?如果/home是根文件系统的一部分,这可能与此无关。添加set-x;exec 2>/tmp/pi bash.$$,在/bin/sleep行之前;运行它;查找一个文件/tmp/pi-bash.NNNN,其中N是数字,看看它说了什么。Python脚本是否依赖于在运行环境中未设置或设置不同的环境变量?您可以将env>&2添加到跟踪代码中,以吐出环境。syslog中报告的任何内容?谢谢,我们将尝试上述操作。直接从LXTerminal works运行bash脚本,即我的Python脚本运行并创建gui.ok!。与DISPLAY环境变量有关。如果我尝试通过SSH远程运行Python,我会收到相同的错误。我已经将日志错误添加到上面的原始问题中…使用tKinter作为我的GUI。谢谢,我会尝试。我用它有关系吗/bin/bash或/垃圾箱/垃圾箱?此外,在编辑cron作业时,如果需要,我应该使用sudo?@eco_bach作为用户pi yes.ally.still no circhip,尝试了这两种选择…我认为下一步我应该做一个测试,以确保我的cron作业在服务器上正确执行reboot@eco_bach也许用crontab条目更新你的帖子并告诉你想以pi用户的身份运行python是件好事。我最后使用了一个变通方法……编辑leappad autostart文件