【Linux】建立linux開機啟動檔案

小亮520cl發表於2016-03-18

網上有不少關於如何讓Linux自動執行自己編寫的指令碼或者程式的方法,但是大多數都是把命令寫到/etc/rc.d/rc.local或者/etc/rc.local裡,這樣雖然能夠實現隨機執行,但是並不夠靈活。不能像mysql,apache等服務一樣能夠使用service命令或者呼叫init.d下的指令碼啟動、關閉或者重啟程式。例如,

service mysql restart

service apache2 stop

或者

/etc/init.d/mysql restart

/etc/init.d/apache2 stop

因為不同的Linux發行版本,對後臺服務的處理方式不大一樣,所以下面以centos系統為例,看看如何寫一個簡單的隨機啟動服務。


在/etc/init.d下面編寫一個測試指令碼

  1. [root@hostnfsd :/etc/init.d]$ more mysql-proxy
  2. #!/bin/sh

  3. case "$1" in
  4. start)
  5.         echo "you start success"
  6. ;;
  7. stop)
  8.         echo "you stop success"
  9. esac

[root@hostnfsd :/etc/init.d]chmod 755 mysql-proxy 


這樣就可以使用service 來控制了
[root@hostnfsd :/etc/init.d]$ /etc/init.d/mysql-proxy start
you start success
[root@hostnfsd :/etc/init.d]$ /etc/init.d/mysql-proxy stop
you stop  success


到這裡,一個Linux服務的程式控制指令碼已經寫好了,但是要實現隨機啟動,還需要一個步驟。 Linux開機的時候,不是直接執行/etc/init.d下的所有指令碼的,而是根據不同的runlevel來執行/etc/rc$runlevel.d下的指令碼。這裡的runlevel是用以區別系統的執行方式(例如單使用者的runlevel,多媒體桌面的runlevel,伺服器的runlevel都不同)。

  1. 小小的修改一下就行了
  2. #!/bin/sh
  3. # chkconfig: 2345 20 81    --加上執行級別以
  4. #description: bymyself     --加上描述
    1. case "$1" in
    2. start)
    3.         echo "you start success"
    4. ;;
    5. stop)
    6.         echo "you stop success"
    7. esac

[root@hostnfsd :/etc/init.d]$ chkconfig --add mysql-proxy 
[root@hostnfsd :/etc/init.d]$ chkconfig --list | grep -i mysql
mysql-proxy     0:off   1:off   2:on    3:on    4:on    5:on    6:off

接下來開機就可以自啟動這個指令碼了












來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-2059578/,如需轉載,請註明出處,否則將追究法律責任。

相關文章