FreeBSD下的開機自啓動

要讓某個程序(腳本)開機自動運行,只需要在/etc/rc.local文件中添加程序(腳本)的啓動行即可。(注:這個文件如果不存在,可以自行建立,並賦予可執行權限即可)。

例如: vim /etc/rc.local

以下是代碼片段:

 #!/bin/sh 
 /usr/local/apache/bin/apachectl start 
 /usr/local/mysql/bin/mysqld_safe --user=mysql&

 這樣,開機的時候就會自動啓動apache和mysql了。


 這個很多人知道,其實BSD開機的時候並不是直接執行這個腳本的。

 查看/etc/rc.d/ 目錄,這裏纔是BSD的開機啓動所有腳本。但爲什麼/etc/rc.local能夠生效呢?只要打開/etc/rc.d/local文件看看,就明白了。

   #!/bin/sh 
  # 
  # $NetBSD: local,v 1.6 2002/03/22 04:33:59 thorpej Exp $ 
  # $FreeBSD: src/etc/rc.d/local,v 1.6 2004/10/07 13:55:26 mtm Exp $ 
  # 
  # PROVIDE: local 
  # REQUIRE: DAEMON 
  # BEFORE: LOGIN 
  # KEYWORD: shutdown 
  . /etc/rc.subr 
  name="local" 
  start_cmd="local_start" 
  stop_cmd="local_stop" 
  local_start() 
  { 
  echo -n 'Starting local daemons:' 
  if [ -f /etc/rc.local ]; then 
  . /etc/rc.local 
  fi 
  echo '.' 
  } 
  local_stop() 
  { 
  echo -n 'Shutting down local daemons:' 
  if [ -f /etc/rc.shutdown.local ]; then 
  . /etc/rc.shutdown.local 
  fi 
  echo '.' 
  } 
  load_rc_config $name 
  run_rc_command "$1"

 這個腳本簡單來說,就是判斷如果存在/etc/rc.local文件,就去執行它。

Freebsd開機自啓動系統服務

  Freebsd下安裝了一些服務,這些服務需要設置爲開機啓動。


  方法一:


  1. 寫腳本放置到/usr/local/etc/rc.d下面


  如:/usr/local/etc/rc.d/cvsd


  2. 設置腳本執行權限


以下是代碼片段:

chmod a+x cvsd

  重新啓動後cvsd服務就自動啓動了,啓動其他服務類似


  方法二:


  1. 在/etc/rc.local中添加添加要啓動的服務


  如:/usr/local/mysql/bin/mysqld_safe


  2. 如果沒有文件/etc/rc.local則先創建即可。


  [b] 問題:禁用sendmail開機啓動?[/b]


  一般服務都是在/etc/rc.conf中加,如


  sshd_enable=”NO”


  sendmai比較特殊,需要這樣寫:


  sendmail_enable=”NONE”


  爲了每次系統重啓後都能運行mysql可以寫一個腳本放到 /etc/rc.d目錄下


  寫一個腳本mysql_start.sh


以下是代碼片段:

    #!/bin/sh 

  /usr/local/mysql/bin/mysqld_safe &

  保存到/etc/rc.d目錄下,那麼以後reboot系統後都能啓動mysql了。


  所以很多應用程序都可以用這種方法開機自啓動啦。

參考資料:http://sery.blog.51cto.com/10037/88524/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章