尝试过很多方法,有些需要登陆后才能自启动程序,有些设置后不能进入桌面,现记录一种目前用起来正常的方法
1、准备要执行的python脚本1.py和2.py,准备1.sh脚本,如下:
#!/bin/bash
cd /home/xxxx
/home/xxxx/anaconda3/envs/xxxx/bin/python 1.py & /home/xxxx/anaconda3/envs/xxxx/bin/python 2.py
#其中python路径都需要为绝对路径
2、修改 脚本权限,如下:
sudo chmod +x /home/xxx/1.py
sudo chmod +x /home/xxx/2.py
3、向系统注册服务,在目录/etc/systemd/system/
下添加1.service文件,内容如下:
[Unit]
Description=svc-test
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=no //退出后不会重启,always表示退出后会一直重启
RestartSec=1
User=root
ExecStart=/usr/bin/bash /home/xxxx/1.sh // 必须为绝对路径,最好先在命令行输入/usr/bin/bash /home/xxxx/1.sh 看有没有什么问题
[Install]
WantedBy=multi-user.target
4、添加执行权限
sudo chmod +x /home/xxxx/1.sh
5、重载系统服务
sudo systemctl daemon-reload
6、将服务注册为开机启动
sudo systemctl enable 1.service
7、重启机器验证
sudo reboot
ps -aux | grep python #查看正在运行的python代码
8、如果更换了脚本内容,需要重启服务
sudo systemctl start 1 #启动服务
sudo systemctl stop 1 #停止服务
sudo systemctl restart 1 #重启服务
sudo systemctl status 1 #查看服务状态