树莓派Python程序开机自启动(Linux下Python程序开机自启动)

前一阵子用python编写了一个驱动I2C程序读写屏幕,输出IP的小程序,程序编好后需要树莓派使能程序开机自启动。其实这些方法对任何Linux系统都适用。

方法一:此方法的缺点是不进入默认pi的账号,甚至不开hdmi开启桌面的话,仅仅做远程服务器登录的时候不会自动启动

在 /home/pi/.config (ls -a)下找到名为autostart的文件夹,如果没有就新创建一个。在该文件夹下创建一个xxx.desktop文件,文件名自拟,后缀必须是desktop,文件内容如下:

[Desktop Entry]

Name=test

Comment=Python Program

Exec=sudo python /home/pi/test.py(这个py文件想开机启动的文件)

Icon=/home/pi/python_games/4row_black.png

Terminal=false

MultipleArgs=false

Type=Application

Categories=Application;Development;

StartupNotify=true

Name、Comment、Icon 可以自定,表示启动项的名称、备注和图标。Exec 表示调用的指令,和在终端输入运行脚本的指令格式一致。

最后 sudo reboot重启树莓派,test.py 就开机自动运行了。

方法二:此方法的缺点是不是systemd的系统不能用此办法

在树莓派终端命令行依次进行如何指令操作:

1、进入下面的文件路径:

cd /etc/systemd/system

2、创建一个***.service文件*(我这里以modbustest.service为例)*

sudo vi modbustest.service

3、在该文件内添加如下内容:

[Unit]

Description = test deamon

After = rc-local.service

[Service]

Type = simple

User = root

Group = root

WorkingDirectory = /home/pi (py文件所在目录)

ExecStart = /usr/bin/sudo python modbustest.py (绝对路径)

Restart = always

[Install]

WantedBy = multi-user.target

4、sudo systemctl enable modbustest.service

然后关机重启就可以实现python程序的自启动。

方法三:rc.locale办法,此方法适合任何linux单片机、linux系统,推荐

如果你要执行的程序路径为 /home/pi/run.py。在rc.local文件里Exit 0 前加入  
sudo /usr/bin/python /home/pi/run.py
树莓派Python程序开机自启动(Linux下Python程序开机自启动)_第1张图片
然后ctrl+o保存,退出。重新启动树莓派。

这个时候怎么看我们的程序是否自启动了呢。sudo systemctl status rc-local

可以查看运行状态来判断我们的程序是否正确运行。

方法四: /etc/crontab 定时列表法,适合于任何linux,不推荐

1.进入编辑配置

sudo nano /etc/crontab

2.在文件中加入如下语句:

0点0分重启

0 0 * * * root reboot

12点0分重启

0 12 * * * root reboot

每一项内容都包含六个部分,从左到右分别为:分钟、小时、月份中的哪一天、年份中的哪一月、星期中的哪一天,还有定时执行的命令。

树莓派Python程序开机自启动(Linux下Python程序开机自启动)_第2张图片

你可能感兴趣的:(python,linux,嵌入式硬件)