freebsd 下程序随系统开机启动的一种方法(sery)
2008-07-19 18:41
465 查看
我在一个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都乖乖的起来了。
随着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都乖乖的起来了。
相关文章推荐
- Freebsd下程序随系统开机启动的方法
- Freebsd下程序随系统开机启动的方法
- 在CentOS系统下,主要有两种方法设置自己安装的程序开机启动。
- linux系统设置服务开机启动3种方法,Linux开机启动程序详解
- linux系统设置服务开机启动3种方法,Linux开机启动程序详解
- ubuntu 自添加开机启动程序(一种使ethtool设置永久保存在网络设备中的曲线救国方法) 转自:http://www.groad.net/bbs/read.php?tid-1393.html
- 设置嵌入式系统开机自动启动程序
- 在linux下设置开机自动启动程序的方法ZT
- VC++实现程序开机启动运行的方法
- 在linux下设置开机自动启动程序的方法
- 各式各样的自启动(系统启动或注销及开机\关机时执行一定程序)
- 将程序添加到开机启动组,filePath表示系统的启动项
- 让控制台程序后台运行并开机启动的简单方法
- 在linux下设置开机自动启动程序的方法ZT
- linux程序开机自动启动方法
- 在linux下设置开机自动启动程序的方法
- [Windows][VC]开机自动启动程序的几种方法
- Freebsd系统故障导致系统不能正常启动的恢复数据方法[图] 推荐
- 在android系统上写C语言程序--开机启动该程序不进入安卓系统
- 在linux下设置开机自动启动程序的方法