cron在终端窗口中启动python脚本

时间:2017-04-15 01:17:09

标签: python cron boot

尝试在启动后自动启动python脚本。我想在终端窗口中启动它,因为该程序在终端中提供了重要的反馈。

我研究了很多方法,包括crontab,init.d,rc.local和/etc/xdg/autostart/myscript.desktop

当我手动测试我的脚本(rc.local)时,从终端调用rc.local - 它可以工作,但是在启动后这些都不起作用。

我尝试了很多变体,最新的crontab:

@reboot sleep 60 && xterm -hold -e sudo python /home/pi/newcode/newcode/boot-test.py

我试过的其他变种包括(从shell脚本调用我的python脚本):

@reboot sleep 60 && /home/pi/bin/mount.sh && sh /home/pi/foo1.sh

@reboot sleep 60 && /home/pi/bin/mount.sh && sh /home/pi/foo1.sh

我真的很感激任何帮助

更新

foo1.desktop(保存在/ usr / local / bin / foo1):

[Desktop Entry]
...
Name=foo1
Exec=gksu /usr/local/bin/foo1
Terminal=false
Type=Application
Categories=GTK;System;TerminalEmulator;

foo1(保存在/etc/xdg/autostart/foo1.desktop):

#!/bin/bash
/usr/bin/x-terminal-emulator --command="/home/pi/newcode/newcode/boot-test.py" --title="My foo1"

python脚本,现在非常简单(保存在/home/pi/newcode/newcode/boot-test.py)

sensortype=raw_input("press enter to continue")

2 个答案:

答案 0 :(得分:0)

  

<强>注释
  1.被命名为foo1.desktop?
  2.命名为foo1.sh?
  3. foo1.sh需要可执行吗?

  1. 是的,必须命名为 *。desktop
  2. 如果您使用 *。sh ,则* .desktop中的条目必须相等为 Exec=gksu /usr/local/bin/foo1.sh
  3. 是的,Bash脚本必须可执行。
  4.   

    问题:我手动测试了我的脚本(rc.local)

    请勿使用etc/rc.local X11 执行早期

    我的/etc/xdg/autostart示例:

    1. 创建一个至少包含以下内容的foo1.desktop
    2.   

      [桌面输入]
        ...
        NAME = foo1
        Exec = gksu / usr / local / bin / foo1
        终端=假
        类型=应用
        分类= GTK;系统;虚拟终端;

      1. 复制foo1.desktop或在foo1.desktop中创建指向/etc/xdg/autostart的链接。

      2. 使用以下内容创建/usr/local/bin/foo1

      3.   

        #!/斌/庆典
          / usr / bin / x-terminal-emulator --command =“python path_to_your _ *。py”--title =“My foo1”

        1. 制作/usr/local/bin/foo1,可执行。

答案 1 :(得分:0)

尝试多个变体后,有效的脚本包含以下内容:

#!/bin/bash
/usr/bin/x-terminal-emulator -hold -e sudo python /home/pi/newcode/newcode/hms2-v2.6.py

通过执行以下操作使脚本可执行也是必要的:

sudo chmod 755 /etc/xdg/autostart/foo1.desktop

我从未让cron或init.d工作