centos安装tomcat设置开机启动

来源:互联网 发布:汽车行业数据库 编辑:程序博客网 时间:2024/06/05 07:09

Centos下Tomcat以指定的用户,非root权限开机自启
安装tomcat
tomcat解压就能用 安装包可以从官网上下载。

[root@template tmp]# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.69/bin/apache-tomcat-7.0.69.tar.gz解压[root@template tmp]# tar -zxvf apache-tomcat-7.0.69.tar.gz  -C /usr/local/启动 注意这里我重命名了解压出来的文件夹名apache-tomcat-7.0.69为tomcat7[root@template local]# mv apache-tomcat-7.0.69 tomcat7[root@template bin]# cd /usr/local/tomcat7/bin/[root@template bin]# ./startup.sh 关闭[root@template bin]# ./shutdown.sh 

设置开机启动root用户 建议看下面更新部分 Tomcat以指定的用户,非root权限开机自启
增加开机启动服务 从安装oracle开机启动学的 脚本比较low
具体编辑脚本

 vim /etc/init.d/tomcat7 #创建新文件 tomcat7是我自己取得名字 #!/bin/bash# oracle: Start/Stop tomcat7 # chkconfig: 345 90 10# description: tomcat .JAVA_HOME=/usr/local/jdk1.7.0_79JRE_HOME=$JAVA_HOME/jre. /etc/rc.d/init.d/functionsLOCKFILE=/var/lock/subsys/tomcat7flagTOMCAT_HOME=/usr/local/tomcat7/TOMCAT_USER=rootcase "$1" in'start')   if [ -f $LOCKFILE ]; then      echo $0 already running.      exit 1   fi   echo -n $"Starting tomcat!  "        /usr/local/tomcat7/bin/startup.sh   touch $LOCKFILE   ;;'stop')   if [ ! -f $LOCKFILE ]; then      echo $0 already stopping.      exit 1   fi   echo -n $"Stopping tomcat!  "         /usr/local/tomcat7/bin/shutdown.sh         rm -f $LOCKFILE   ;;'restart')   $0 stop   $0 start   ;;'status')   if [ -f $LOCKFILE ]; then         echo $0 started.      else      echo $0 stopped.   fi   ;;*)   echo "Usage: $0 [start|stop|status]"   exit 1esacexit 0

修改/etc/init.d/tomcat7服务文件权限
[root@CentOS init.d]# chmod 755 /etc/init.d/tomcat7

#chkconfig --add tomcat7

说明 如果脚本没写好 可能出现
service myservice does not support chkconfig
解决办法

添加下面两句到 #!/bin/bash 之后。# chkconfig: 2345 10 90 # description: myservice ....

设置为开机启动

如果提示

[root@template sbin]# service tomcat7 stopStopping tomcat!  Neither the JAVA_HOME nor the JRE_HOME environment variable is definedAt least one of these environment variable is needed to run this program

tomcat中需要做如下修改

vim /usr/local/tomcat7/bin/startup.sh 添加如下环境变量export JAVA_HOME=/usr/local/jdk1.7.0_79export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.export PATH=$PATH:$JAVA_HOME/binexport CATALINA_HOME=/usr/local/tomcat7

[root@CentOS ~]# chkconfig tomcat7 on
进行service tomcat7 start/stop/restart测试

还有一种简单的办法 直接在启动文件中加启动命令
在/etc/rc.d/rc.local中加入:
/usr/local/tomcat7/bin/startup.sh

Tomcat以指定的用户,非root权限开机自启

2016年5月29日16:44:25 更新 tomcat非root运行
以上安装无法指定启动Tomcat服务的用户,会导致Tomcat以超级用户运行,存在重大的安全隐患!

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

[root@template ~]# cd /usr/local/tomcat7/bin/[root@template bin]# tar -zxvf commons-daemon-native.tar.gz 
#解压出来文件名commons-daemon-1.0.15-native-src[root@template unix]#cd /usr/local/tomcat7/bin/commons-daemon-1.0.15-native-src/unix#自己的java home  echo $JAVA_HOME可以查看到,如没有请先配置参考上篇centos搭建java环境[root@template unix]# ./configure --with-java=/usr/local/jdk1.7.0_79[root@template unix]# make#make后,会在当前文件夹下生成一个名为 jsvc 的文件,将其复制到/bin目录[root@template unix]# cp jsvc /usr/local/tomcat7/bin/#删掉我之前useradd建的tomcat7用户[root@template ~]# userdel -r tomcat7#添加一个用来运行Tomcat的用户,不允许登录[root@template ~]# useradd tomcat7 -M -d / -s /usr/sbin/nologin#回到/bin目录下[root@template unix]# cd /usr/local/tomcat7/bin/#接下来便是修改/bin目录下的 daemon.sh 文件vim daemon.sh#脚本开始添加TOMCAT_USER=tomcat7JAVA_HOME=/usr/local/jdk1.7.0_79#赋予执行权限 之前复制过来的jsvc所有者还是root所以这步建议靠后执行[root@template bin]# chown -R tomcat7:tomcat7 /usr/local/tomcat7/#启动一下[root@template bin]# ./daemon.sh start看看有没有正常启动[root@template bin]# netstat -lnp |grep 8080tcp        0      0 :::8080                     :::*                        LISTEN      3208/jsvc.exec      #也可以这样看一下 注:之前配了nginx代理到8080端口 如没有需加127.0.0.1:8080得到的应该是tomcat主页[root@template bin]# curl 127.0.0.1     

启动成功然后需要设置Tomcat为Service

创建 $CATALINA_HOME/bin/daemon.sh 的一个链接到 /etc/init.d/ 下,service名为tomcat7
注意这里之前我配置过一个自启动的先删掉,有点舍不得 还是移到备份目录

[root@template bin]# mkdir /home/backupFiles[root@template bin]# mv /etc/init.d/tomcat7 /home/backupFiles/[root@template bin]# ln -s /usr/local/tomcat7/bin/daemon.sh  /etc/init.d/tomcat7#试一试  结果正常[root@template bin]# service tomcat7 stop

添加到chkconfig

[root@template bin]# chkconfig --list |grep tomcat[root@template bin]# chkconfig --add tomcat7service tomcat7 does not support chkconfig

有经验了,修改脚本就好了 参考上篇centos服务器配置java环境
增加开机启动服务 部分

vim /etc/init.d/tomcat7 添加下面两句到 #!/bin/bash 之后。# chkconfig: 2345 10 90 # description: myservice ....

再次执行添加,成功后设置开机启动。重启验证一下

[root@template bin]# chkconfig --add tomcat7[root@template bin]# chkconfig tomcat7 on [root@template bin]# reboot#搞定,收工![root@template ~]# netstat -lnp |grep 8080tcp        0      0 :::8080                     :::*                        LISTEN      1445/jsvc.exec   
0 0
原创粉丝点击