要让某个程序(脚本)开机自动运行,只需要在/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/