当前位置:   article > 正文

在Ubuntu上20.04编写一个开机自启动Python脚本的程序_ubuntu20.04开机运行py文件

ubuntu20.04开机运行py文件

将python程序注册为Ubuntu系统服务,并开机启动的方法。

一、系统环境

操作系统:ubuntu 18.04以后 (该版本已默认使用systemd作为init)

二、步骤

1、在目录/opt/install

  • 准备python程序 main.py
  • 准备sh脚本svc-test.sh
#!/bin/bash
P_HOME=$(cd "$(dirname "$0")";pwd)
echo "P_HOME=$P_HOME"
export PYTHONPATH=/opt/install/xxxxxxx/lib/python3.8/site-packages  //python packages
# export PATH=$PATH:
echo "PYTHONPATH=$PYTHONPATH"
cd $P_HOME
cd src
python3 main.py
cd ../
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2、添加执行权限

sudo chmod +x  /opt/install/main.py
sudo chmod +x  /opt/install/svc-test.sh
  • 1
  • 2

三.向系统注册服务

1、编写注册文件
/etc/systemd/system/ 下添加svc-test.service 文件
svc-test.service文件下复制以下内容

[Unit]
Description=svc-test
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/usr/bin/bash /opt/install/svc-test.sh  // 必须为绝对路径

[Install]
WantedBy=multi-user.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2、添加执行权限

sudo chmod + x /etc/systemd/system/svc-test.service
  • 1

3、重载系统服务

sudo systemctl daemon-reload
  • 1

4、将服务注册为开机启动

sudo systemctl enable svc-test.service
  • 1

5.重启服务查看相应的服务状态即可看到脚本服务自动启动:

sudo reboot
  • 1

查看脚本服务状态

sudo systemctl status svc-test
  • 1

看到以下信息即服务在系统中注册成功并可随系统开机自动启动

# systemctl status svc-test
● svc-test.service - svc-test
   Loaded: loaded (/etc/systemd/system/svc-test.service; enabled; vendor preset: enabled)
   Active: activating (start) since Thu 2020-01-02 00:42:43 CST; 21min ago
 Main PID: 574 (python3)
    Tasks: 1 (limit: 4604)
   CGroup: /system.slice/svc-test.service
           └─574 /usr/bin/python3 /usr/bin/svc-test.py

Jan 02 00:42:43 NanoPi-M4 systemd[1]: Starting svc-test...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

三、附录–一些关于systemctl的命令

查看所有服务的状态

systemctl status
  • 1

停止服务

systemctl stop svc-test
  • 1

手工启动服务

systemctl start svc-test
  • 1

查看单个服务的状态

systemctl status svc-test
  • 1

禁用开机启动

systemctl disable svc-test.service
  • 1

参考链接:1.https://www.jianshu.com/p/b75d88e5aa61
2.http://www.manongjc.com/detail/18-cwhjgfrdexqyxof.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/54971?site
推荐阅读
相关标签
  

闽ICP备14008679号