2017-04-15 67 views
0

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

我已经研究了很多方法可以做到这一点包括crontab中,的init.d,rc.local中,并/etc/xdg/autostart/myscript.desktop

当我测试我的脚本(RC。本地)手动,从终端调用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") 
+0

你真的需要打印到控制台吗?难道你不能只输出到日志文件,然后在必要时尾部输出日志文件? –

+0

也许我没有,也许我真的想这样做,因为它给我一个很难,我想看到它的工作。我不认为这会很难。我也读过许多其他人的帖子,试图做到这一点,一些成功... – user3808752

+0

删除'... ...,这些只是占位符。与来自'/ use/share/application'目录的完整示例进行比较。仔细检查您保存的位置,将您的位置交换至我的答案。在路径前添加'python'到你的'* .py'。与我的答案进行比较。相应地编辑你的问题。 – stovfl

回答

0

评论
1名为foo1.desktop?
2.名为foo1.sh?
3.是否需要使foo1.sh可执行?

  1. 是,必须命名为*的.desktop
  2. 如果使用* .SH,在*的.desktop有条目等于
    Exec=gksu /usr/local/bin/foo1.sh
  3. 是,一击脚本必须使可执行文件。

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

不要使用etc/rc.local,它的执行年初X11


/etc/xdg/autostart例如:

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

[桌面入口]
...
名称= foo1
Exec = gksu/usr/local/bin/foo1
Terminal = false
Type = Application
Categories = GTK; System; TerminalEmulator;

  • 复印foo1.desktop/etc/xdg/autostart创建链接到foo1.desktop

  • 具有以下内容创建/usr/local/bin/foo1

  • #/斌/庆典
    在/ usr/bin中/ X-终端模拟器的--command = “蟒蛇path_to_your _ * PY。” --title = “我foo1”

  • /usr/local/bin/foo1,可执行文件。
  • +0

    @stovfi:当我尝试etc/rc.local时,我尝试延迟调用我的脚本与不同长度的睡眠,但从来没有奏效。一些后续问题: 1.被命名为foo1.desktop? 2.名为foo1.sh? 3.是否需要使foo1.sh可执行? – user3808752

    +0

    没有运气,没有推出 – user3808752

    +0

    还是不行,我的foo1.desktop scrpit:[link](https://pastebin.com/nCdBag5k),我的foo1脚本:[link](https://pastebin.com/FKWdHdvk)和我的boot-test.py scrpit:[链接](https://pastebin.com/fuQJfjQ9) – user3808752

    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上班