本文以ubuntu18.04为例,记录ubuntu使用shell脚本实现开机自启python程序
文章目录
- 前言
- 一、编写shell脚本auto_run.sh
- 二、修改auto_run.sh权限
- 三、添加开启自启程序
- 打开gnome-session-properties
- 添加开启自启脚本
- 总结
前言
项目程序完成后大多情况是需要实现开机自启的,因为让非专业人员在ubuntu系统中通过敲命令行来启动程序是不太现实的,也会影响用户体验。我们希望用户通过重启能解决99%的问题。
一、编写shell脚本auto_run.sh
建议在ubuntu系统下编写脚本,若从windows系统下写好在传到ubuntu系统上可能需要更改一下文件格式,可参考文档
#!/bin/bash
cd /home/nvidia/Desktop/Project/ #此处根据自己的main.py路径修改
while true
do
python3 main.py
done
以上脚本实现了当main.py
出现任何未知错误时,自动重启程序,如果不需要可以把while true do done
去掉。
注意:若是在arm架构下(jetson系列盒子,树莓派),建议在python3
前面加上OPENBLAS_CORETYPE=ARMV8
,否则可能会出现illegal instruction (core dumped)
的报错,即在arm架构下对应的shell脚本变成:
#!/bin/bash
cd /home/nvidia/Desktop/Project/ #此处根据自己的main.py路径修改
while true
do
OPENBLAS_CORETYPE=ARMV8 python3 main.py
done
二、修改auto_run.sh权限
这里需要对auto_run.sh
开启权限,cd
到auto_run.sh
所在路径,
sudo chmod -R 777 auto_run.sh
不开启权限可能会出现Permission denied
提示。
三、添加开启自启程序
打开gnome-session-properties
在终端中输入:
gnome-session-properties
出现类似如下界面:
添加开启自启脚本
点击Add
Name、Comment
按照自己理解填写即可。Command
是最重要的部分,如果需要开机后前台运行程序,即出现终端,可以填写如下命令:
gnome-terminal -- bash -c /home/nvidia/Desktop/Project/auto_run.sh
此处根据自己的auto_run.sh
路径修改。
之后就应该大功告成了。
总结
下面总结下整体思路:
1.编写shell脚本来启动python程序;
2.通过gnome-session-properties来添加shell脚本的自启(也就实现了python程序的自启)