Ubuntu开机启动Python脚本
注意事項:如果腳本沒有執行,首先應該考慮執行權限問題,查看腳本和相應的文件是否有執行權限,如果沒有需要賦予執行權限。
方法1:
1.編寫一個shell腳本文件,例如python_auto.sh,文件內容:
2.編寫start.py文件,里面執行你需要服務器開啟執行的操作
3.在 /etc/profile? 這個文件中,添加shell腳本文件路徑,例如:
在服務器開機時會自動執行 /etc/profile中的代碼
注: linux隨機啟動的服務程序都在/etc/init.d這個文件夾里,里面的文件全部都是腳本文件,另外在/etc這個文件夾里還有諸如名為rc1.d, rc2.d一直到rc6.d的文件夾,這些都是linux不同的runlevel,我們一般進入的X windows多用戶的運行級別是第5級,也就是rc5.d,在這個文件夾下的腳本文件就是運行第5級時要隨機啟動的服務程序。需要注意的是,在每個rc (1-6).d文件夾下的文件其實都是/etc/init.d文件夾下的文件的一個軟連接,也就是說,在 /etc/init.d文件夾下是全部的服務程序,而每個rc(1-6).d只鏈接它自己啟動需要的相應的服務程序! 還 需要注意的一點是,在rc5.d里,每個鏈接的名字都是以S或者K開頭的,S開頭的表示是系統啟動是要隨機啟動的,K開頭的是不隨機啟動的。這 樣,你就可以知道,如果我要哪個服務隨機啟動,就把它名字第一個字母K改成S就可以了,當然,把S改成K后,這個服務就不能隨機啟動了。Ubuntu系統運行級別: 0 ?系統停機狀態 1 ?單用戶或系統維護狀態 2~5 多用戶狀態 6 ?重新啟動?
登錄時自動運行程序: 用戶登錄時,bash首先自動執行系統管理員建立的全局登錄script :/ect/profile。然后bash在用戶起始目錄下按順序查找三個特殊文件中的一個:/.bash_profile、/.bash_login、 /.profile,但只執行最先找到的一個。 因此,只需根據實際需要在上述文件中加入命令就可以實現用戶登錄時自動運行某些程序。 退出登錄時自動運行程序: 退出登錄時,bash自動執行個人的退出登錄腳本/.bash_logout。
實例:
/opt/abc.sh?
#!/bin/shnohup /usr/bin/python2 /opt/agent.py >/dev/null 2>&1 &/etc/profile 最后面添加
bash /opt/abc.sh方法2:
在/etc/rc.local文件中添加一行:
/usr/bin/python2.7 /usr/local/qlya/timing_insert.py &?
&符號為讓腳本后臺運行,不在命令行顯示結果
方法3:
編寫一個service,并讓service開機自啟動(CentOS 7)
/usr/lib/systemd/system/? 目錄下存儲了很多以service為后綴的服務文件,systemctl就是根據這些服務文件來管理服務。
編寫自己的服務文件test.service,然后放入該目錄,EXP:
[Unit] Description=test Documentation=empty After=network.target remote-fs.target nss-lookup.target mysqld.service[Service] Type=oneshot PIDFile=/run/test.pid ExecStartPre= ExecStart=/apps/bin/python /apps/test.py ExecReload= ExecStop= PrivateTmp=true[Install] WantedBy=multi-user.target具體各項參數百度下即可,service文件編寫完成后即可使用systemctl來管理。
systemctl enable test.service? ?# 該命令使服務開機自啟動
那么開機后,systemctl工具會自動運行該服務文件中ExecStart參數填寫的命令
方法4:針對Ubuntu18.04
最近在使用Ubutnu18.04,我突然發現沒有rc.local文件了,原來是因為在新版本全部統一使用systemctl來管理服務了,開機自啟動服務也不例外。
vim /lib/systemd/system/rc-local.service# 添加install參數 [Install] WantedBy=multi-user.target Alias=rc-local.servicetouch /etc/rc.local # 創建rc.local文件,默認沒有創建將需要開機自啟動的命令寫在rc.local中就可以了systemctl status rc.local和systemctl status rc-local 你會發現用的是同一個service文件,即rc-local.service 新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的Ubuntu开机启动Python脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: USACO-Section2.2 Run
- 下一篇: ubuntu18.04安装pycharm