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