2009-05-23 13:09:26| 分类: Linux|字号 订阅
update @ 2011/10/13:
开机自启动apache服务,用admin帐号
#vi /etc/rc.d/rc.local
#su - admin -c "/usr/alibaba/httpd/bin/httpd -f /home/admin/www/conf/httpd.conf -k start"
update @ older:
设置Linux系统启动自动启动服务的两种方法:
方法一:/etc/rc.d/rc.local 中增加需要启动的程序或服务。
例如:apace安装在 /usr/local/www目录下,若要设置自动启动服务可用以下命令:
vi /etc/rc.d/rc.local 加入:
/usr/local/www/bin/apachectl start
方法二:将程序注册为系统服务
在/etc/rc.d/init.d目录下编辑启动脚本。
拷贝自动启动的服务程序到 /etc/rc.d/init.d 目录下:
例如:将 appache2的驱动程序appachectl拷贝至/etc/rc.d/init.d目录下并改名为:httpd
cp /usr/local/www/apachectl /etc/rc.d/init.d/httpd
使用编辑器打开httpd文件,并在第一行#!/bin/sh下增加两行文字如下
# chkconfig: 35 70 30
# description: Apache
更改httpd文件执行权限:
chmod 700 /etc/rc.d/init.d/httpd
注册该服务
chkconfig --add httpd
最后:service httpd start
相关知识:
Linux系统启动的第一个进程是init
# ps -ef | grep init //查看init的PID
init 运行 /etc/inittab中描述的任务。
/etc/inittab 文件的格式允许以"#"开始注释行,正常的条目用 ":" 界定。遵从如下的格式:
id:runlevel:action:process
示例: id:5:initdefault:
解释:
id 代表用户定义的唯一的标志,
runlevel 可以使0-6的组合或者为空,
action 来自一个关键词keyword 描述init如何对待process,
process 是要执行的命令。
描述action字段的各种关键字可以在inittab的手册中找到。常用的关键字, 不是全部, UNIX平台包括这些:
initdefault--定义一个系统启动后进入的运行级
wait --会被执行一次的进程 (当进入运行级的时候)。init 进程将等待这个进程被终止。
boot --定义一个启动的时候执行的进程.
bootwait --与 boot 类似 ,不过 init在继续运行前等待进程的终止
sysinit --定义一个进程在 boot的时候执行,在任何 boot或者bootwait inittab 条目的前面执行。
runlevel 字段指明系统状态。
0. 系统挂起
1. 但用户Single-user mode
2. 多用户,没有NFS
3. 完整的多用户Complete multiuser mode
4. 用户自定义
5. X11 (XDM 登陆)
6. 重新启动
/etc/init.d文件与chkconfig命令
在/etc/init.d目录下,任意打开一个启动脚本,你会发现在其顶部的注释中,基本上都有以下一行:
chkconfig 235 56 34 (也可能是其他数字组合)
就 以chkconfig 235 56 34为例,235表示该启动脚本对应的服务将在系统启动级别2, 3, 5级启动。而56表示其启动优先级为56,所谓的优先级,就是在rc脚本中出现在各个符号链接名中的数字。
那么34是什么相信大家已经猜到了,对了,他就是终止优先级。
Linux下利用CHKCONFIG管理系统服务
chkconfig --list [name] 例子:chkconfig --list httpd 查看httpd的运行级别
chkconfig --add name 例子:chkconfig --add httpd 将httpd注册为系统服务
chkconfig --del name 例子:chkconfig --del httpd 把httpd从系统服务中删除
chkconfig [--level levels] name <on|off|reset> 例子:chkconfig --level httpd on|off|reset 改变httpd的运行级别
# find /etc/rc.d -name '*crond' -print
/etc/rc.d/init.d/crond
/etc/rc.d/rc0.d/K60crond
/etc/rc.d/rc1.d/K60crond
/etc/rc.d/rc2.d/S40crond
/etc/rc.d/rc3.d/S40crond
/etc/rc.d/rc4.d/S40crond
/etc/rc.d/rc5.d/S40crond
/etc/rc.d/rc6.d/K60crond
读懂上面的输出:
第1行:代表/etc/rc.d/init.d中的脚本名为crond
第3、4、5、6行:crond在进入运行级2,3, 4,5 的时候启动
第1、2、7行:当进入运行级 0, 1 , 6的时候停止
第二印象:
2009-04-08 10:36:00
一个生产环境中的启动脚本例子
-----------------------------------------------
#!/bin/sh
#启动脚本的存放位置 /etc/rc.d/rc.local
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
#startup Iplanet Directory Server 启动ldap
/usr/local/pkg/iplanet/servers/slapd-toppymgt/start-slapd
#startup jakarta-tomcat 启动tomcat
/usr/local/pkg/jakarta-tomcat-4.1.12/tomcat_start
/usr/local/man/ts/tss2_rc2/teamspeak2-server_startscript start
#touch /var/lock/subsys/local 启动oracle数据库
su - oracle -c "/u01/app/oracle/product/9.2.0/bin/dbstart"
su - oracle -c "/u01/app/oracle/product/9.2.0/bin/lsnrctl start"
#startup dinner erp 启动erp
/usr/local/pkg/mserver1/metasphere_server_by_root start