如何让linux(raspberry)在插件电源时运行python脚本?

时间:2016-01-26 06:29:45

标签: python linux bash raspberry-pi2

我有一个python脚本(namely /home/pi/x.py)。我已经尝试了很多方法让程序,例如:

#!/bin/bash
# /etc/init.d/mystart  
### BEGIN INIT INFO
# Provides: Python 
  

(我在想我在这里(提供:Python)?)

# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: my python initscript
# Description: no description
### END INIT INFO   case "$1" in
    start)
        echo "Starting x.py "
        /home/pi/x.py &
        ;;
    stop)
        echo "Stopping x.py"
        #killall x.py
        kill $(ps aux | grep -m 1 'python /home/pi/x.py' | awk '{ print $2 }')
        ;;
    *)
        echo "Usage: service x.py start|stop"
        exit 1
        ;; esac exit 0

我已经从原始形式修改了这个bash,并把它放在

/etc/inti.d/mystart

sudo chmod +x /etc/init.d/mystart

sudo update-rc.d mystart defaults

然而,当我尝试:sudo service mystart start

出现一些错误! [Unit mystart.service failed to load: No such file or directory.]

  

所以我在这里被封锁了,我不知道如何让x.py在它运行时运行   电源开启

2 个答案:

答案 0 :(得分:2)

打开/ etc / profile

sudo nano /etc/profile

滚动到底部并添加以下行:

sudo python /home/pi/x.py

其中“/home/pi/x.py”是脚本的绝对路径。 输入“Ctrl + X”退出,然后输入“Y”保存,然后输入“Enter”两次。现在重启并测试。 python脚本现在应该在启动时运行

自动登录设置(在没有用户干预的情况下执行脚本)

  • 打开/ etc / inittab

    sudo nano / etc / inittab

  • 找到这一行

    1:2345:respawn:/ sbin / getty 115200 tty1

  • 在行的开头添加一个#字符以禁用它,使其看起来像

    #1:2345:respawn:/ sbin / getty 115200 tty1

  • 在该行下,添加以下内容:

    1:2345:respawn:/ bin / login -f pi tty1 / dev / tty1 2>& 1

其中“pi”是用户名。输入“Ctrl + X”退出,然后输入“Y”保存,然后输入“Enter”两次。现在启动时,raspberrypi将使用pi用户自动登录并执行您的脚本

如果您没有/ etc / inittab,该怎么办?

我假设您正在使用最新的Raspian-Image(jessie)。这个是基于Debian 8(jessie)的,其中init-system发生了变化。已经提到了自动登录解决方案here

<强>来源: http://www.raspberrypi-spy.co.uk/2015/02/how-to-autorun-a-python-script-on-raspberry-pi-boot/

答案 1 :(得分:1)

我使用(UITableView)Control.Delegate = new CustDelegate(this); 并且效果很好

第1步:

crontab

第2步:填写

sudo crontab -e

第3步:保存并重新启动