raspberrypi 树莓派+Python开机启动
来源:互联网 发布:ios11升级数据会丢失吗 编辑:程序博客网 时间:2024/05/14 08:15
最简单粗暴的方法():
EDITING RC.LOCAL(编辑rc.local文件)
在你的树莓派上,选择一个文本编辑器编辑/etc/rc.local文件。你必须使用root权限编辑,例如:
sudo vim /etc/rc.local
在注释后面添加命令,但是要保证exit 0这行代码在最后,然后保存文件退出。
WARNING(注意)
如果你的命令需要长时间运行(例如死循环)或者运行后不能退出,那么你必须确保在命令的最后添加“&”符号让命令运行在其后台。
python /home/pi/myscript.py &
这个“&”符号允许命令运行在一个指定的进程中,然后继续运行启动进程。
另外,确保文件名使用绝对路径,而不是相对于你的home目录的相对路径。例如:使用/home/pi/myscript.py而不是用myscript.py。
方法一(linux init.d的服务方式):
1、首先写个简单的python 脚本
脚本很简单,就是树莓派上一个灯闪烁程序
文件保存在/home/pi/script/ledblink.py
#!/usr/bin/env pythonimport RPi.GPIO as GPIOimport timeGPIO.setmode(GPIO.BCM)GPIO.setup(21,GPIO.OUT)while True: try: GPIO.output(21,True) time.sleep(1) GPIO.output(21,False) time.sleep(1) except (KeyboardInterrupt, SystemExit): GPIO.close() print "exit"
2、开机启动脚本
保存脚本为/etc/init.d/ledblink文件
#!/bin/bash# /etc/init.d/ledblink### BEGIN INIT INFO# Provides: embbnux# Required-Start: $remote_fs $syslog# Required-Stop: $remote_fs $syslog# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: ledblink initscript# Description: This service is used to manage a led### END INIT INFOcase "$1" in start) echo "Starting LED Blink" /home/pi/script/ledblink.py & ;; stop) echo "Stopping ledblink" #killall ledblink.py kill $(ps aux | grep -m 1 'python /home/pi/script/ledblink.py' | awk '{ print $2 }') ;; *) echo "Usage: service ledblink start|stop" exit 1 ;;esacexit 0
3、 设置python脚本开机启动
sudo chmod +x /etc/init.d/ledblink
这样启动改脚本用service 命令就可以
sudo service ledblink start#启动sudo service ledblink stop#停止
最后设置开机启动就好了
sudo update-rc.d ledblink defaults
这样就完工了,重启树莓派就会发现led自己闪烁了,停止用
sudo service ledblink stop
参考: Run a script on start up
方法二:(使用桌面环境才有用)
用Python写了一个程式,想要在树莓派开机时自动启动,网上看了很多人说可以通过如下方式实现:
修改rc.local文件:sudo nano /etc/rc.local
在文件末尾 ,在exit 0 这一行之前,加入一行: python /home/pi/programname
然后Ctrl+X,再选择Y退出。
可我试了多次也未能成功。我最终实现的方式如下:
在/home/pi/.config下创建一个文件夹,名称为autostart,并在该文件夹下创建一个xxx.desktop文件,文件内容如下:
[Desktop Entry]Name=ScanTestComment=My Python ProgramExec=python /home/pi/ScanTest/Scan.pyIcon=/home/pi/ScanTest/Scan.pngTerminal=falseMultipleArgs=falseType=ApplicationCategories=Application;Development;StartupNotify=true
之后sudo reboot重启,就可以看到Scan.py在树莓派启动后也自动启动了。
方法三:
要在rc.local中启动python脚本,最好将python脚本Daemon化,
请参考这里:
http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/
我成功在rc.local中启动了daemon化后的python脚本。
- raspberrypi 树莓派+Python开机启动
- 树莓派+Python开机启动
- 树莓派开机启动python脚本
- RaspberryPi(树莓派)从U盘启动
- raspberry开机启动python
- RaspberryPi 树莓派启动报错 mmcblk0: error -110 解决方法
- RaspberryPi上FreeSWITCH自启动
- linux开机启动python脚本
- 树莓派开机启动python脚本的另一种方法
- 树莓派开机启动python脚本的另一种方法【转】
- raspberryPi树莓派安装nodejs
- RaspberryPi
- 树莓派开机自启动
- 用Python实现开机延迟启动脚本
- win7下python禁止开机自启动
- RaspberryPi树莓派远程文件管理
- [Raspberrypi] 树莓派安装Ubuntu MATE
- 树莓派开机自动启动vncserver
- 我眼中的Oracle Database Software 和 Oracle Database
- PHP_PHP开发框架-opencart
- TQ2440 学习笔记—— 3、如何在ubuntu 9.10 下安装vmware-tools?
- 机器视觉开源代码集合
- ORACLE EXP不能导出空表的原因分析及解决方法
- raspberrypi 树莓派+Python开机启动
- iOS runtime访问/修改私有变量
- 分布式系统生成唯一主键
- 【大创_社区划分】——PageRank算法的解析与Python实现
- HBuilder app开发:mask遮罩实现父子页面联动。
- centos-apache-tomcat-domain配置
- 动态规划
- [Leetcode]Merge Two Sorted Lists
- Android编码规范