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