坚持以客户需求至上原则
中国老牌优质服务商

Tomcat启动脚本实现方法

1.首先我们就来创建一个普通用户。

1
2
3
4
groupadd tomcat #加组
useradd -g tomcat -s /usr/sbin/nologin tomcat #向组加用户
usermod -L tomcat #锁定密码,使密码无效
passwd tomcat # 设置密码

通过这四步,我们就把普通用户创建好了,在创建用户时,我们是先创建的组,组创建完成后创建用户并加入该组。

用户创建完成后,就开始给用户设置权限

1
chown -R tomcat:tomcat /data #分配权限给用户

这就是给tomcat这个用户设置了可以操作data目录及其子目录下的权限,-R就代表该目录及其级联子目录。

1
2
3
4
[root@localhost data]# ls -l
total 0
drwxr-xr-x. 4 tomcat tomcat 79 May 20 08:03 tomcat
[root@localhost data]#

此时我们通过ls -l 命令就可以看到data目录已经属于tomcat用户,且拥有查看,写入,执行权限

2.完成了用户创建后,我们就要开始完成tomcat启动脚本。

如代码所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
tomcat_home=/data/tomcat/tomcat-8484
SHUTDOWN=$tomcat_home/bin/shutdown.sh
STARTTOMCAT=$tomcat_home/bin/startup.sh
case $1 in
start)
echo "启动$tomcat_home"
$STARTTOMCAT
cd /data/tomcat/tomcat-8484/logs
tail -f catalina.out
;;
stop)
echo "关闭$tomcat_home"
#$SHUTDOWN
netstat -anp | grep 8484| grep -v grep | awk '{print $7}' | sed -e 's//java//g' | sed -e 's/^/kill -9 /g' | sh
#pidlist=`ps -ef |grep tomcat |grep -v "grep"|awk '{print $2}'`
#kill -9 $pidlist
#删除日志文件,如果你不先删除可以不要下面一行
#rm $tomcat_home/logs/* -rf
#删除tomcat的临时目录
#rm $tomcat_home/work/* -rf
;;
restart)
echo "关闭$tomcat_home"
$SHUTDOWN
#pidlist=`ps -ef |grep tomcat |grep -v "grep"|awk '{print $2}'`
#pidlist=`netstat -anp |grep 8484 |grep -v "grep"|awk '{print $2}'`
#netstat -anp | grep 8484| grep -v grep | awk '{print $7}' | sed -e 's//java//g' | sed -e 's/^/kill -9 /g' | sh
#kill -9 $pidlist
sleep 5
echo "启动$tomcat_home"
$STARTTOMCAT
#看启动日志
#tail -f $tomcat_home/logs/catalina.out
;;
logs)
cd /data/tomcat/tomcat-8484/logs
tail -f catalina.out
;;
esac

上面代码就是tomcat启动脚本,首先我们要创建一个文本文件,然后将后缀名变成.sh,这里我是用端口号为8484的tomcat作为例子,从脚本文件中可以看到,总共只需对自己tomcat位置和日志位置进行自定义改动后就可以使用,总共有四个命令,start,stop,restart,logs。

脚本文件创建好后,只需将它放入你的服务器中,位置可以自己随意选择,我这里就把它放在了tomcat下bin目录中。

脚本文件放入服务器后其实还不能使用,会有两个问题待解决,一个是格式问题,一个是权限问题。因为我们是文本文件创建的,其格式是文本格式,我们要改成unix格式,所以要进行如下设置

1
2
sed -i "s/
//" tomcat-8484.sh #设置脚本文件为unix格式

完成了格式设置后就要为该脚本文件设置权限,因为linux默认文件的权限是drwxr-xr-x,即所有运行权限赋予文件所有者也就是系统管理员(当前我是用系统管理员登录),把读和运行的权限赋予群组用户,把读的权限赋予其他用户,所以我们要对脚本文件权限进行重新设置。

1
chmod 777 ./tomcat-8484.sh

chmod命令就是改变权限的命令,这个777是什么意思呢?

在Linux系统中,文件或目录的权限又分为3种:只读、只写、可执行。

 

 

 

依照上面的表格,权限组合就是对应权限值求和,如下:

7 = 4 + 2 + 1 读写运行权限

5 = 4 + 1 读和运行权限

4 = 4 只读权限

因此,大家也就明白了 chmod 777 ./tomcat-8484.sh 命令的含义了。

此时我们的tomcat启动脚本就完成了,下面我们来演示一下。

启动

1
2
3
4
5
6
7
8
[root@localhost bin]# ./tomcat-8484.sh start
启动/data/tomcat/tomcat-8484
Using CATALINA_BASE: /data/tomcat/tomcat-8484
Using CATALINA_HOME: /data/tomcat/tomcat-8484
Using CATALINA_TMPDIR: /data/tomcat/tomcat-8484/temp
Using JRE_HOME: /usr
Using CLASSPATH: /data/tomcat/tomcat-8484/bin/bootstrap.jar:/data/tomcat/tomcat-8484/bin/tomcat-juli.jar
Tomcat started.

我们查看进程看一下是否真的启动

1
2
3
[root@localhost bin]# ps -ef |grep tomcat
root 5569 1 7 14:09 pts/0 00:00:06 /usr/bin/java -Djava.util.logging.config.file=/data/tomcat/tomcat-8484/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dignore.endorsed.dirs= -classpath /data/tomcat/tomcat-8484/bin/bootstrap.jar:/data/tomcat/tomcat-8484/bin/tomcat-juli.jar -Dcatalina.base=/data/tomcat/tomcat-8484 -Dcatalina.home=/data/tomcat/tomcat-8484 -Djava.io.tmpdir=/data/tomcat/tomcat-8484/temp org.apache.catalina.startup.Bootstrap start
root 5611 5340 0 14:10 pts/0 00:00:00 grep --color=auto tomcat

可以看到启动没有问题。

关闭

1
2
3
4
5
[root@localhost bin]# ./tomcat-8484.sh stop
关闭/data/tomcat/tomcat-8484
sh: line 2: kill: (18484) - No such process
[root@localhost bin]# ps -ef |grep tomcat
root 5621 5340 0 14:13 pts/0 00:00:00 grep --color=auto tomcat

查看进程确实是关闭成功的,好了我们的tomcat启动脚本也就大功告成了,这个脚本还可以自己在此基础上进行延伸,例如在启动后就立即查看日志等。

 

赞(34)

更专业 更快速 更方便

华夏名网VIP服务