树莓派开机自动运行python脚本,查看后台线程,前后台转换:
文章目录
一、安装screen
1.安装
sudo apt-get install screen
2.使用screen创建新的终端
(这里我创建了一个名字为my_test2的终端,要记住终端的名字)
screen -S my_test2
成功创建后会清屏
3.在screen 终端上跑我的脚本
(尽管把终端关了,这个脚本依然会在后台运行)
你不信???继续往下看… …
二、查看树莓派后台线程
1.打开终端输入 ps aux 查看所有的进程
我已经将刚才的终端关闭了,现在新打开一个终端,输入ps aux
可以看到test2.py线程,依然在后台运行
ps aux
2.或者打开终端输入 ps -ef | grep python 查看python的进程
ps -ef | grep python
三、恢复后台的程序(在终端上显示)
my_test2就是一开始创建的终端的名字
screen -r my_test2
可以看到,程序是一直在跑的!
四、开机自动创建终端,自动运行脚本
1.首先我们需要制作一个脚本。在终端下输入并回车新建脚本文件start.sh
创建文件:
touch start.sh
设置权限:
chmod 777 start.sh
2.然后向rc.local文件添加启动代码
在终端输入 sudo vi /etc/rc.local 并回车
sudo vi /etc/rc.local
在打开的文本中找到exit 0,在此之前添加的代码在启动时都会被执行,在exit 0 之前添加一行代码:
su pi -c "exec /home/pi/start.sh"
保存并退出
这时候,树莓派通电的时候就会运行 start.sh 脚本.而我们接下来就是要做start.sh上创建screen 终端,并且运行我们的python脚本
3.编辑start.sh
vi start.sh
输入一下代码:
screen_name="my_test2"
screen -dmS $screen_name
cmd="python3 /home/pi/Arm_Pi/test2.py";
screen -x -S $screen_name -p 0 -X stuff "$cmd"
screen -x -S $screen_name -p 0 -X stuff '\n'
现在,我们创建了一个名为 my_test2 的窗口。
然后,我们向其发送具体的命令 python3 /home/pi/Arm_Pi/test2.py
这样,我们就向my_test2发送了一条python3 /home/pi/Arm_Pi/test2.py命令了。
以后其他的开机启动命令都可以放在start.sh中
sudo reboot
重启一下,进入后台, test2.py 已经在运行了… …
五、关闭程序
从后台查看,我们可以看到 test2.py 的PID是850
在终端上输入kill 580就可以关闭test2.py的脚本
kill 850