要讓某個程序(腳本)開機自動運行,只需要在/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/