赞
踩
在很多应用场景下,需要在Linux掉电重启的时候自动重启python脚本,还不能解锁屏幕。那么就只好将python程序当做服务去运行
在指定位置创建文件
- cd /etc/systemd/user/
- sudo vim 服务名称.service
进入用户文件夹去创建,没有vim就用vi是一样的。之所以不在系统文件夹下创建是因为想让创建的服务是用户服务,这样我们可以通过进程监视进行运行控制。
在.service中输入代码
ExecStart是脚本的执行路径,后面的&是后台运行脚本,避免出现python循环导致开机失败
- /for example start//
- [Unit]
- Description=名称
- After=network.target
-
- [Service]
- Type=forking
- ExecStart=/bin/bash -c "脚本路径/run.sh &"
- PrivateTmp=true
-
- [Install]
- WantedBy=default.target
-
- /for example end//
使能并开启服务
- systemctl --user enable 服务名称.service
- systemctl --user start 服务名称.service
运行用户服务命令,保证用户不登录时也会运行服务
loginctl enable-linger $user(用户名)
1有时候脚本文件写完不执行,报错,先看看脚本是不是bash
- 修改默认bash运行
- 执行ls -l /bin/sh命令,若得到结果/bin/sh -> dash,则说明Shell的解释器为dash。
- 执行sudo dpkg-reconfigure dash命令,然后选择no。
2服务的运行需要确保python这个程序在运行的时候是不会停止的,如果python运行结束了,那么服务也就结束啦。
比如
- 我一次运行7个python脚本,前六个我不看返回,让他后台运行,但是第七个我就要
- 让他获得执行后返回结果,那么因为程序一直运行他不能获得返回后结果
- 程序服务就可以一直运行,又是一个小细节
-
- bash /路径/run.sh &
- bash /路径/run.sh &
- bash /路径/run.sh &
- bash /路径/run.sh &
- bash /路径/run.sh &
- bash /路径run.sh &
- bash /路径/run.sh
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。