網上有很多關於如何讓Linux自動運行本身編寫的腳本或者程序的方法,可是大多數都是把命令寫到/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發行版本,對後臺服務的處理方式不大同樣,如redhat使用chkconfig來管理開機程序。因此下面的方法以debian類系統爲例,如何寫一個簡單的開機啓動腳本。因此,此方法適用於raspbian pi的系統。 以svn爲例: 1.製做開機啓動腳本svn_serve ``` #!/bin/sh ### BEGIN INIT INFO # Provides: svn_serve # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start or stop the HTTP Proxy. ### END INIT INFO case $1 in start) svnserve -d -r /home/pi/svn_repository ;; stop) killall svnserve ;; *) echo "Usage: $0 (start|stop)" ;; esac ``` 若是不加上面的註釋,執行下面步驟3時,update-rc.d會報以下的警告信息 ``` update-rc.d: warning: /etc/init.d/proxy missing LSB information update-rc.d: see <http://wiki.debian.org/LSBInitScripts> ``` 2.啓動關閉服務 ``` sudo service svn_serve start sudo service svn_serve stop ``` 3.讓svn_serve開機啓動 ``` sudo update-rc.d svn_serve defaults ``` 4.取消svn_serve的開機自動啓動 ``` sudo update-rc.d -f svn_serve remove ```