把一个python程序当做自定义服务运行后就可以实现开机自启,重启,查看状态等功能。
首先需要写一个如下的myschedul.service文件放在/usr/lib/systemd/system下,myschedul是自己起的名字,下面文件中Description是自己写的描述文件,WantedBy=multi-user.target代表哪个用户都可以用,ExecStart里的/usr/bin/python3.6代表用python执行,是自己系统python的软连接地址,根据自己的系统配置,后面的是执行文件的地址,就是想要作为服务运行的python程序,注意路径都要写绝对路径。
[Unit]
Description=Spider Schedul Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python3.6 /root/test_wjx/SpiderSchedul/bin/myschedul_linux.py
[Install]
WantedBy=multi-user.target
写好之后运行
sudo systemctl enable myschedul.service
使自己的服务生效
然后输入
sudo systemctl start myschedul.service
自己的服务应该就启动起来了
如果没启动起来,可以输入
sudo systemctl status myschedul.service
里面可以看到一些报错信息。
注意作为服务的程序跑起来的时候,程序当前路径会自动定义为linux系统的根目录打印os.getcwd()的话,你会发现结构是/,这样的话,你程序里的import就会失效,需sys.path.append(os.path.dirname(file))里面是你觉得合适的环境变量。
一些服务相关命令:
开始自己的服务:
sudo systemctl start myschedul.service
查看自己的服务状态:
sudo systemctl status myschedul.service
重新加载服务的配置文件:
sudo systemctl daemon-reload
停止自己的服务:
sudo systemctl stop myschedul.service
重启自己的服务:
sudo systemctl restart myschedul.service