当前位置: > Linux服务器 > Tomcat >

centos下 jdk+tomcat+自启动(守护进程)

时间:2016-05-30 14:31来源:linux.it.net.cn 作者:IT
关于tomcat启动的问题之前查了很多文章,很多尝试了一下都不行。没办法,自己本身很菜,如果看的文章再含糊不清就更要命了。不过最后还是找到了好文章。这里的方法就是最后解决方案了。

jdk:
1.去sun下载jdk-6u13-linux-i586
2.复制进linux   /user下
3.更改权限  chmod 744  jdk-6u13-linux-i586  可执行
4.安装后生成
drwxr-xr-x  10 root root     4096 08-14 19:30 jdk1.6.0_13
文件夹
5.reboot
6.java -version
如若有显示java的版本信息,则表示安装成功,
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20071124 (Red Hat 4.1.2-42)

Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

7.配置环境变量:
# vi /etc/profile 

最后加入
export JAVA_HOME=/usr/jdk1.6.0_13
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export CATALINA_HOME=/usr/local/apache-tomcat-6.0.20



8。删除:
用#rm -fr /usr/jdk1.6.0_13命令即可删除JDK,别忘了把配置文件的相关内容也清空啊vi /etc/profile

------------------------------------------------------------------------------------------------------------------------------------------------------------
tomcat:

第一步:解压缩Tomcat部署文件到 /usr/local/tomcat
 <1># tar -zxf apache-tomcat-6.0.14.tar.gz
 <2># mv apache-tomcat-6.0.14 /usr/local/tomcat

ln -s apache-tomcat-6.0.20 tomcat   可以加个软连接(快捷方式)

 

第二步:测试安装(注意环境变量JAVA_HOME必需提前设置)
 <1>启动: # /usr/local/tomcat/bin/startup.sh
 <2>关闭: # /usr/local/tomcat/bin/shutdown.sh

启动
[root@CentOS5 bin]# ./startup.sh
Using CATALINA_BASE:   /usr/local/apache-tomcat-6.0.20
Using CATALINA_HOME:   /usr/local/apache-tomcat-6.0.20
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.20/temp
Using JRE_HOME:       /usr/jdk1.6.0_13

# netstat -tnl   查看 8080  8009 这2个端口,如果打开了,证明tomcat正常运行。

tcp        0      0 :::8009        :::*             LISTEN
tcp        0      0 :::8080        :::*             LISTEN


从WIN访问LINux中的服务器 http://192.168.1.35:8080/   192.168.1.35linux的IP地址 8080端口

注意要写上 8080 端口。

发现不能打开 tomcat 默认页面,  是因为 CentOS 5.3 操作系统中 默认 iptables 防火墙设置

的原因,没有允许 8080 端口

# iptables -F 这个命令可以清除 CentOS5.3 中 iptables 自带防火墙 默认规则

 

 保存, 修改iptables 的设置 

# iptables -F

# service iptables save

Saving firewall rules to /etc/sysconfig/iptables:          [  OK  ]

 

配置tomcat:

1.vi /usr/local/apache-tomcat-6.0.20/conf/tomcat-users.xml  添加管理员

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users> 
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="amber" password="123456" roles="admin,manager"/>
</tomcat-users>

2.方式GET方式传参乱码

vi /usr/local/apache-tomcat-6.0.20/conf/server.xml  

     67     <Connector port="8080" protocol="HTTP/1.1"
     68                maxThreads="150"
     69                connectionTimeout="20000"
     70                redirectPort="8443"
     71                URIEncoding="UTF-8" />

3.配置数据库连接池:  先要把oracle driver(ojdbc6)放入  {tomcat}/lib

[root@CentOS5 ~]# mv ojdbc6.jar /usr/local/apache-tomcat-6.0.20/lib/

vi /usr/local/apache-tomcat-6.0.20/conf/context.xml 

<?xml version='1.0' encoding='utf-8'?>

<Context reloadable="true">


<WatchedResource>WEB-INF/web.xml</WatchedResource>

<Resource name="jdbc/oracleds" auth="Container"
type="javax.sql.DataSource"
maxAction="100" maxldle="30" maxWait="10000"
username="amber" password="123456"
driverClassName="oracle.jdbc.OracleDriver" 
url="jdbc:oracle:thin:@192.168.1.101:1521:DBSERVER"/>
</Context>

 

----

4。

/etc/rc.d/init.d/tomcat stop    重启tomcat
/etc/rc.d/init.d/tomcat start

 

------------------------------------------------------------------------------------------------------------------------------------------------------------

tomcat自启动:
1.第一种 vi /etc/rc.d/rc.local
因为 /etc/rc.d/rc.local的启动  要先于 /etc/profile 启动 所以如果你只写了启动startup.sh  tomcat会找不到环境变量的。
解决的办法就是在startup.sh中 或者在rc.local中定义一下环境变量。(直接复制profile里定义好的了)

#!/bin/sh
#
# 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.

export JAVA_HOME=/usr/jdk1.6.0_13
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export CATALINA_HOME=/usr/local/apache-tomcat-6.0.20

/usr/local/apache-tomcat-6.0.20/bin/startup.sh
touch /var/lock/subsys/local


不足:
1.无法指定启动Tomcat服务用户,会导致Tomcat已超级用户运行存在重大隐患
3. 系统关闭时候无法自动停止Tomcat服务 


 2.第二种,把tomcat的启动作为守护进程。
http://news.zdnet.com.cn/zdnetnews/2008/0909/1116804.shtml

安装了Tomcat,很简单,将下载下来的安装文件包解压,放入相应的目录中,然后在 Linux环境中设置相应的如:JAVA_HOME、CATALINA_HOME等环境变量后,在Tomcat的bin目录下执 行./catalina.sh run就能在终端方式上启动tomcat的服务。如果需要将tomcat加入自启动队列中,则需要进行如下的操作:

(1)以root用户登录系统: 

(2)在Linux下,Tomcat可以作为一个守护进程来启动以及停止,这个必须借助于项目commons-daemon中的jsvc工具。Tomcat安装完后就带有这个工具的源码{tomcat}/bin/jsvc.tar.gz。按照下列命令安装这个工具:

解压: tar zxvf jsvc.tar.gz
配置: cd jsvc-src
         chmod +x configure
        ./configure --with-java=/usr/jdk1.6.0_13
编译: make
检验: ./jsvc -help

(3)注意修改脚本内部的安装位置的参数 复制入 vi /etc/rc.d/init.d/tomcat   一定要仔细修改蓝色的配置路径

#!/bin/sh
#
# Startup Script for Tomcat5
#
# chkconfig: 2345 87 13
# description: Tomcat Daemon
# processname: jsvc
# pidfile: /var/run/jsvc.pid
# config:
#
# Source function library.
. /etc/rc.d/init.d/functions
#
prog=tomcat
#
# Small shell script to show how to start/stop Tomcat using jsvc
# If you want to have Tomcat running on port 80 please modify the server.xml
# file:
#
# <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->
# <Connector className="org.apache.catalina.connector.http.HttpConnector"
# port="80" minProcessors="5" maxProcessors="75"
# enableLookups="true" redirectPort="8443"
# acceptCount="10" debug="0" connectionTimeout="60000"/>
#
# You need a developement version of Tomcat (Apache Tomcat/4.1-dev)
#
# Adapt the following lines to your configuration

JAVA_HOME=/usr/jdk1.6.0_13
CATALINA_HOME=/usr/local/apache-tomcat-6.0.20
DAEMON_HOME=$CATALINA_HOME/bin/jsvc-src
TOMCAT_USER=root
TMP_DIR=/var/tmp
CATALINA_OPTS=
CLASSPATH=$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/bin/commons-

daemon.jar:$CATALINA_HOME/bin/bootstrap.jar

start(){
echo -n $"Starting $prog: "
     #
     # Start Tomcat
     #
     $DAEMON_HOME/jsvc \
     -user $TOMCAT_USER \
     -home $JAVA_HOME \
     -Dcatalina.home=$CATALINA_HOME \
     -Djava.io.tmpdir=$TMP_DIR \
     -outfile $CATALINA_HOME/logs/catalina.out \
     -errfile '&1' \
     $CATALINA_OPTS \
     -cp $CLASSPATH \
     org.apache.catalina.startup.Bootstrap
     #
     # To get a verbose JVM
     #-verbose \
     # To get a debug of jsvc.
     #-debug \
     RETVAL=$?
     [ $RETVAL = 0 ] && touch /var/lock/subsys/jsvc
     [ $RETVAL = 0 ] && echo_success || echo_failure
     echo
     return $RETVAL
}
stop(){
     echo -n $"Stopping $prog: "
     #
     # Stop Tomcat
     #
     PID=`cat /var/run/jsvc.pid`
     kill $PID
     RETVAL=$?
     [ $RETVAL = 0 ] && rm /var/lock/subsys/jsvc
     [ $RETVAL = 0 ] && echo_success || echo_failure
     echo
     return $RETVAL
}

case "$1" in
start)
start
;;

stop)
stop
;;

restart|reload)
stop
start
;;

*)
echo "Usage $0 start/stop"
exit 1;;
esac


注意:# chkconfig: 2345 80 20
# description: starts or stops the tomcat instance 

要写正确 不然会出现chkconfig --add  错误

(4).


给该脚本赋予可执行权限:chmod 755 tomcat   (user r-x)

你可以使用命令

/etc/rc.d/init.d/tomcat start|stop

来验证守护进程是否可以正常启动和停止

 

使用chkconfig命令把 tomcat 命令加入到系统启动队列中:

  chkconfig --add tomcat

  查看apachectl的状态:

  chkconfig --list tomcat 

然后chkconfig tomcat on设置开机启动

 

完成。



(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容