声明
本文只是出于该系列文章知识点完整的目的,没啥技术含量。
或许只适合初学者,大神请绕路……
1 自带脚本介绍
在tomcat安装目录中的bin目录下有几个自带的脚本文件。
windows上是.bat批处理文件,linux下是.sh文件。
.sh or .bat |
desc |
catalina.sh |
tomcat主要脚本,可用于tomcat启动、停止等 |
digest.sh |
用于生成加密过的tomcat用户密码 |
tool-wrapper.sh |
一般和digest脚本结合使用 |
service.bat.sh |
在windows上以windows服务的方式安装或卸载tomcat |
setclasspath.sh |
设定tomcat的classpath等环境变量 |
shutdown.sh |
相当于 catalina.sh stop |
startup.sh |
相当于 catalina.sh start |
configtest.sh |
配置文件测试脚本 |
version.sh |
查看版本信息 |
1.1 catalina.sh | catalina.bat
cmd可用选项如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| debug 以debug模式启动 debug -security 启用catalina.policy文件 jpda start 以jpda(Java Platform Debugger Architecture)调试器的模式启动 run 即使是在linux上,也不会将输出重定向到日志文件,就像和windows上(那个一直开着的黑窗口)一样的效果 run -security start 启动tomcat start -security stop n 停止tomcat,最多有n秒的延迟来处理释放资源等的操作 stop 相当于 stop 5 stop n -force 停止tomcat,最多n秒延迟,n秒之后会强制kill掉tomcat stop -force 相当于 stop 5 --force configtest 检测配置文件${catalina.home}/conf/server.xml语法 version tomcat版本信息
|
1.2 digest.sh
1 2 3 4 5 6
| CATALINA_HOME/bin/digest.[bat|sh] -a {algorithm} {cleartext-password} algorithm:sha,md2,md5 # 生成123的md5特征码 ./digest.sh -a md5 123
|
2 tomcat环境变量
name |
default |
desc |
CATALINA_HOME |
安装目录 |
tomcat基本目录 |
CATALINA_BASE |
安装目录 |
logging、work、conf等目录所在目录 |
CATALINA_OPTS |
|
一般是传递JVM参数使用的,比如-Xmx256M |
CATALINA_TMPDIR |
${CATALINA_HOME}/temp |
tomcat临时文件目录 |
JAVA_HOME |
|
…… |
JRE_HOME |
|
…… |
JAVA_OPTS |
|
传递JVM参数使用的,比如-Xmx256M |
JPDA_TRANSPORT |
dt_socket |
JPDA调试器使用的传输协议 |
JPDA_ADDRESS |
8000 |
制定和catalina.sh jpda start 一起使用的jpda地址 |
JSSE_HOME |
|
指定用于https使用的Java Secure SocketsExtension的位置 |
CATALINA_PID |
|
进程描述符位置 |
3 常见问题
3.1 查看tomcat是否正在运行
方法一:jps
Java Process Snapshot
1 2 3 4 5
| [root@VM_15_242_centos bin]# jps # 这个Bootstrap就是tomcat实例了 11905 Bootstrap 13630 Jps [root@VM_15_242_centos bin]#
|
方法二:netstat
1 2 3
| [root@VM_15_242_centos bin]# netstat -tlnp | grep java tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 11905/java tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 11905/java
|
方法三:ps(progress snapshot)
1 2 3 4 5
| [root@VM_15_242_centos bin]# ps aux | grep catalina.startup #……………… [root@VM_15_242_centos bin]# ps -ef | grep java ………………
|
3.2 强行杀死tomcat进程
通过以上的几种方法都能获得tomcat进程的进程号。
直接kill即可。
3.3 配置tomcat远程登录
这个问题要是细说就麻烦了,想shiro、spring-security这种权限框架都有个类似于叫Realm的东西。
- JDBCRealm
- DataSourceRealm
- JNDIRealm
- UserDatabaseRealm
- MemoryRealm
- JAASRealm
具体的就不说了,这里指记录最简单最快速上手的配置:tomcat-user.xml
你的server.xml文件中应该有这么个配置:
1 2 3 4 5
| <GlobalNamingResources> <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/> </GlobalNamingResources>
|
在server.xml的某个Engine下,应该有类似以下的配置:
1 2 3 4
| <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm>
|
以上两处的配置由一个关键值为 的关键属性关联。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 所以只要修改了,tomcat-user.xml的配置,在用到它的Engine下都会生效。 所以,将tomcat-user.xml改成类似以下配置就行了: ```xml <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <!-- 加上role和user就可以了 具体的roles可取哪些值,看文档吧 另外,这种明文的也不怎么安全, 只是为了快速配置,实际项目中不建议使用 --> <role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="tomcat" password="123=" roles="manager-gui,manager-script"/> </tomcat-users>
|
另外,记得重启tomcat才能重读配置文件生效。