一、利用init
1、系統有相應的python解釋器,並在腳本頭部聲明,例如:#!/usr/bin/python
2、給予該腳本可執行權限,如:chmod +x somescript.py
3、腳本接受第一個命令參數,需要能接受至少包含start的參數,至於stop、restart以及status等並不是必須的,你可以自己來擴展。如: ./somescript.py start 這種命令格式來啟動程序
4、將該腳本放到/etc/rc.d/init.d/路徑下
5、chkconfig --add somescript.py添加服務
6、chkconfig --level 3 somescript.py on 在init為3或5的級別上開機啟動該服務
在運行chkconfig時,程序會報錯,需要在文件中加入:
1 #chkconfig:- 85 15 2 #description:xxxx is a service
建議將init級別設置為3,因為設置為5時,會運行兩次腳本。
后期發現,級別3也存在同樣的問題。
二、利用systemd
1 [Unit] 2 Description=xxxx 3 After=network.service 4 5 [Service] 6 Type=simple 7 User=root 8 Group=root 9 WorkingDiretory=/var/www/html/app10 ExecStart=/usr/bin/python app.py 11 12 [Install] 13 WantedBy=multi-user.target
將該腳本復制到/etc/systemd/system/,將app.py腳本賦予執行權限:
1 chmod +x app.py
啟動服務:
1 systemctl start app.service
查看服務狀態:
1 systemctl status app.service
停止服務:
1 systemctl stop app.service
大功告成!!!
現在Linux平台大都提供systemd,個人推薦使用systemd。systemd教程請移步阮一峰的教程。