继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

freebsd 下程序随系统开机启动的一种方法(GNU)

largeQ
关注TA
已关注
手记 978
粉丝 92
获赞 585


freebsd 下程序随系统开机启动的一种方法(GNU)

作者:田逸([email]sery@163.com[/email])

 

我在一个freebsd 7上用源码安装了apache,mysql等软件,安装目录分别是/usr/local/apache及/usr/local/mysql .现在想把apache、mysql随系统开机自动启动。在网上查了一下,发现不少人用port安装,然后修改rc.conf文件,不知道是我固执还是他人固执,非得按freebsd的办法,哎!

 

随着sco unix的日渐衰微,很多厂家不再支持sco,原来那帮执着的sco unix使用者麻烦来了。个人认为没有必要成为某个厂商的殉葬品。怎么办呢?幸好有GNU.

 

总所周知,redhat有个文件/etc/rc.local,如果我们想定制安装的软件随系统开机启动的话,只需把启动程序的命令行追加到这个文件。回到freebsd下,没有rc.local这个文件。与linux不同,freebsd要自动启动的程序位于/etc/rc.d目录(linux是/etc/init.d,还要在运行级别做处理:脚本或链接文件)。先看看/etc/rc.d里面都有啥:

# ll /etc/rc.d

total 362

-r-xr-xr-x  1 root  wheel    241 Feb 24 09:41 DAEMON

-r-xr-xr-x  1 root  wheel    405 Feb 24 09:41 FILESYSTEMS

-r-xr-xr-x  1 root  wheel    404 Feb 24 09:41 LOGIN

-r-xr-xr-x  1 root  wheel    339 Feb 24 09:41 NETWORKING

-r-xr-xr-x  1 root  wheel    243 Feb 24 09:41 SERVERS

-r-xr-xr-x  1 root  wheel    981 Feb 24 09:41 abi

....................................................................

-r-xr-xr-x  1 root  wheel   1803 Feb 24 09:41 ldconfig

-r-xr-xr-x  1 root  wheel    535 Feb 24 09:41 local

-r-xr-xr-x  1 root  wheel   1147 Feb 24 09:41 localpkg

有点好奇,打开文件local看看(耶!是个shell脚本),其内容如下:

# more /etc/rc.d/local

#!/bin/sh

#

# $FreeBSD: src/etc/rc.d/local,v 1.6.14.1 2008/01/28 07:58:31 dougb 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,就执行吧,阿门!没有就算了,一切归于平静。既然这样,我们不妨自己创建文件/etc/rc.local并给予执行权限。/etc/rc.local文件的大致内容为:

#!/bin/sh

/usr/local/apache/bin/apachectl start

/usr/local/mysql/bin/mysqld_safe --user=mysql&

重启一下系统,嘿嘿,apache和mysql都乖乖的起来了。

 

                                                                                                 海淀福缘门悟真阁

                                                                                             2008-07-18

©著作权归作者所有:来自51CTO博客作者sery的原创作品,如需转载,请与作者联系,否则将追究法律责任

职场freebsd休闲linux企业应用

0


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP