Linux如何開機自動運行自己的腳本


 

博客分類:
    記錄這個事情是上次完成之后,今天要新加一個文件夾,一時之間忘記以前怎么做了,因為有幾種方法,起碼我知道三種方法,這里記錄一筆以前的做法,覺得最簡單:
 
操作系統:CentOS-5.2
目      標:開機自動掛載局域網中windows的共享目錄
 

一、root權限編輯/etc/rc.d/rc.local

 

Shell代碼   收藏代碼
  1. su  
  2. cd /etc/rc.d/  
  3. vi rc.local  
 
二、在這個文件加上你要執行的腳本,全部內容如下:

 

Shell代碼   收藏代碼
  1. #!/bin/sh  
  2. #  
  3. # This script will be executed *after* all the other init scripts.  
  4. # You can put your own initialization stuff in here if you don't  
  5. # want to do the full Sys V style init stuff.  
  6.    
  7. touch /var/lock/subsys/local  
  8. mount //192.168.0.3/data2-1 /mnt/data2-1 -o username=un,password=123  
  9. mount //192.168.0.3/data2-2 /mnt/data2-2 -o username=un,password=123  
  10. mount //192.168.0.3/data2-3 /mnt/data2-3 -o username=un,password=123  
  11. mount //192.168.0.3/data2-4 /mnt/data2-4 -o username=un,password=123  
  12. mount //192.168.0.3/data2-5 /mnt/data2-4 -o username=un,password=123  

 提示:這里的做法很不成熟,希望不要這樣,最好自己寫個腳本文件在這里來調用,結構更清晰,但是要注意到是把要執行的命令作為一個參數傳遞給su。

 
另外復習一個VI編輯命令-拷貝
yy
p

 

三、雖然搞定,還是補充一下

 

    Linux在啟動時,會自動執行/etc/rc.d目錄下的初始化程序,因此我們可以把啟動任務放到該目錄下,有下列辦法:

 

    方案一:

    比較簡單,就是上面的做法,/etc/rc.d/目錄下的初始化程序很多,rc.local是在完成所有初始化之后執行的,所以在這里做手腳很合適。

 

    方案二:

    init.d目錄下都為可執行程序,他們其實是服務腳本,按照一定格式編寫,Linux 在啟動時會自動執行,類似Windows下的服務。

  1、編寫如下面的腳本simpleTest:

Shell代碼   收藏代碼
  1. #!/bin/bash  
  2. #chkconfig:2345 80 05 --指定在哪幾個級別執行,0一般指關機,6指的是重啟,其他為正常啟動。80為啟動的優先級,05為關閉的優先級別  
  3. #description:simple example service  
  4. RETVAL=0  
  5. start(){ #啟動服務的入口函數  
  6. echo  "simple example service is started..."  
  7. }  
  8.   
  9. stop(){ #關閉服務的入口函數  
  10. echo  "simple example service is stoped..."  
  11. }  
  12.   
  13. #使用case選擇  
  14. case $1 in  
  15. start)  
  16. start  
  17. ;;  
  18. stop)  
  19. stop  
  20. ;;  
  21. *)  
  22. echo "error choice ! please input start or stop";;  
  23. esac  
  24. exit $RETVA  

3、運行chmod +x /etc/rc.d/init.d/simpleTest,使之可直接執行

4、運行chkconfig --add simpleTest,把該服務添加到配置當中

5、運行chkconfig --list simpleTest,可以查看該服務進程的狀態

 

 

方案三、目的是掛載共享目錄,所以可以在/etc/fstab中加上

//192.168.0.3/data2-1   /mnt/data2-1            nfs     username=un,password=123     0 0

 

 

 

非常不好意思,方案二中雖然腳本可以運行

# ./simpleTest start
simple example service is started...

但是我在第4步出現

# chkconfig --add simpleTest
在 simpleTest 服務中讀取信息時出錯:沒有那個文件或目錄
沒有進一步解決抱歉。


免責聲明!

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



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