本文以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开启权限,cdauto_run.sh所在路径,

sudo chmod -R 777 auto_run.sh

不开启权限可能会出现Permission denied提示。

三、添加开启自启程序

打开gnome-session-properties

在终端中输入:

gnome-session-properties

出现类似如下界面:

ubuntu crontab执行python ubuntu中运行python脚本_python

添加开启自启脚本

点击AddName、Comment按照自己理解填写即可。
Command是最重要的部分,如果需要开机后前台运行程序,即出现终端,可以填写如下命令:

gnome-terminal -- bash -c /home/nvidia/Desktop/Project/auto_run.sh

此处根据自己的auto_run.sh路径修改。

ubuntu crontab执行python ubuntu中运行python脚本_linux_02


之后就应该大功告成了。

总结

下面总结下整体思路:
1.编写shell脚本来启动python程序;
2.通过gnome-session-properties来添加shell脚本的自启(也就实现了python程序的自启)