linux開機啟動設置的幾種方法


Linux開機自啟動的幾種方式:

1.chkconfig

以supervisord服務腳本為例:

      第1步:把上面的腳本放在/etc/init.d/文件

ln -s ./supervisord  /etc/init.d/supervisord

  第2步:將啟動腳本權限改為可執行。

chmod a+x /etc/init.d/supervisord

  第3步:添加啟動項。

chkconfig --add supervisord
chkconfig supervisord on

  第4步:檢查是否設置成功。

chkconfig --list | grep supervisord
supervisord     0:關閉    1:關閉    2:啟用    3:啟用    4:啟用    5:啟用    6:關閉

2、手動配置在文件中加入啟動命令

 /etc/rc.local

3、文件指向路徑是/etc/init.d下的腳本文件

/etc/rc[0-6].d

0-6是linux操作系統的運行級別,運行runlevel查看當前運行級

運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動
運行級別1:單用戶工作狀態,root權限用戶,用於系統維護,禁止遠程登陸
運行級別2:多用戶狀態(沒有NFS)
運行級別3:完全的多用戶狀態(有NFS),登陸后進入控制台命令行模式
運行級別4:系統未使用,保留
運行級別5:X11控制台,登陸后進入圖形GUI模式
運行級別6:系統正常關閉並重啟,默認運行級別不能設為6,否則不能正常啟動
/etc/rc[0-6].d目錄下文件的命名規則:S|K + nn + script

S|K,S開頭命名的是開機要執行的腳本,K開頭命名的是關機要執行的腳本

nn取值0-100,表示優先級,數字越大,優先級越低

script是軟鏈接指向的腳本的文件名

/etc/init.d目錄下的控制腳本接受參數

-- start   //啟動

-- stop //停止

-- restart //重啟

-- status //狀態

-- force-reload  //重新載入配置

update-rc.d命令為/etc/init.d目錄下的腳本建立或刪除到/etc/rc[0-6].d的軟鏈接

 

增加一個服務
            添加這個服務並讓它開機自動執行           
            update-rc.d apache2 defaults
           並且可以指定該服務的啟動順序:
           update-rc.d apache2 defaults 90
           還可以更詳細的控制start與kill順序:
           update-rc.d apache2 defaults 20 80
           其中前面的20是start時的運行順序級別,80為kill時的級別。也可以寫成:
           update-rc.d apache2 start 20 2 3 4 5 . stop 80 0 1 6 .
           其中0~6為運行級別。

刪除一個服務
           update-rc.d -f apache2 remove

4、 設置程序的.desktop文件

通過將應用程序的.desktop文件放在自啟動目錄下,那么當用戶登陸桌面環境時,就會自動啟動這些應用程序。

linux中自啟動目錄是$XDG_CONFIG_DIRS/autostart和$XDG_CONFIG_HOME/autostart這兩個,可以打印看一下,有的可能只有其中一個。

把設置好的.desktop放在這兩個目錄下,那么指定的程序就會在桌面環境啟動時啟動,當兩個自啟動目錄同時存在相同的文件時,只會運行其中一個($XDG_CONFIG_HOME)。

program.desktop文件寫法:

[Desktop Entry]
Name=program
Exec=/usr/bin/program
Type=Application
Comment=my program
只需要有這關鍵的幾行就可以了,Exec的路徑一定要正確。.desktop文件還有其他定制項,可參考其他文章。


5、crontab定時執行任務

周期執行的任務一般由cron這個守護進程來處理[ps -ef|grep cron]

cron的配置文件稱為“crontab”,是“cron table”的簡寫

  service crond start //啟動服務
  service crond stop //關閉服務
  service crond restart //重啟服務
  service crond reload //重新載入配置
  service crond status //查看服務狀態

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

每兩個小時
0 */2 * * * echo "Have a break now." >> /tmp/test.txt


crontab -l  //在標准輸出上顯示當前的c
crontab -r // 刪除當前的crontab文件。
crontab -e  //使用VISUAL或者EDITOR環境變量所指的編輯器編輯當前的crontab文件,當結束編輯離開時,編輯后的文件將自動安裝。

 除了數字還有幾個個特殊的符號就是"*"、"/"和"-"、",",*代表所有的取值范圍內的數字,"/"代表每的意思,"/5"表示每5個單位,"-"代表從某個數字到某個數字,","分開幾個離散的數字。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM