千家信息网

利用shell实现Tomcat启动脚本

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要讲解了"利用shell实现Tomcat启动脚本",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"利用shell实现Tomcat启动脚本"吧!1
千家信息网最后更新 2025年12月01日利用shell实现Tomcat启动脚本

这篇文章主要讲解了"利用shell实现Tomcat启动脚本",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"利用shell实现Tomcat启动脚本"吧!

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

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

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

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

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

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

[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启动脚本。

如代码所示:

#!/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格式,所以要进行如下设置

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

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

chmod 777 ./tomcat-8484.sh

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

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

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

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

5 = 4 + 1 读和运行权限

4 = 4 只读权限

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

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

启动

[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.

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

[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

可以看到启动没有问题。

关闭

[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启动脚本也就大功告成了,这个脚本还可以自己在此基础上进行延伸,例如在启动后就立即查看日志等。

感谢各位的阅读,以上就是"利用shell实现Tomcat启动脚本"的内容了,经过本文的学习后,相信大家对利用shell实现Tomcat启动脚本这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

权限 脚本 用户 文件 格式 目录 命令 就是 问题 日志 运行 位置 密码 文本 系统 学习 普通 代码 内容 只需 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术和计算机应用维修 元素服务器 软件开发公司解决方案 云数据库mysql 有几个库 机房网络安全的硬件设备有哪些 广东省网络安全等级保护专家库 2021年网络安全公司50强 服务器后端技术栈外包学习 美萍系统数据库用户密码 溧水区个人软件开发专业服务 可视化服务器管理平台有哪些 大华存储服务器与管理平台调试 马鞍山电力软件开发要多少钱 关于部队网络安全文章题目 普陀区技术软件开发品质保障 sql数据库工资管理系统 小学网络安全教育主题班会记录表 安徽中宾网络技术有限公司 远程服务器连接不上 软件开发 编码阶段流程图 人间地狱没有服务器怎么玩 网络安全工程师需求量大吗 远程监控服务器负载情况 数据库表数量与性能关系 安徽省网络安全信息化委员会 怎么推动软件开发 深圳市百亿科网络技术 山东系统软件开发需要多少钱 导出数据库的数据库文件 南海视频软件开发
0