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

How to let linux(raspberry) run python script when plugin power?

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

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

(I am thinking am I right here(Provides: 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 "" 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  }')
        ;;
    *)
        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.]

So I'm blocked here, I dont know how to let x.py run while it the power is on

打开/etc/profile

sudo nano /etc/profile

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

sudo python /home/pi/x.py

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

自动登录设置(无需用户干预即可执行脚本)

  • 打开/etc/inittab

    须藤纳米 /etc/inittab

  • 找到这一行

    1:2345:重生:/sbin/getty 115200 tty1

  • 在行首添加#字符以禁用它,使其看起来像

    #1:2345:重生:/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 发生了变化。已经提到自动登录解决方案

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

我用过crontab,效果很好

第 1 步:

sudo crontab -e

第二步:填写

@reboot python /home/pi/x.py &

步骤 3:保存并重启