Windows
1. 个性化设置service.bat文件(可选的)
设置个性化tomcat使用的JDK和JRE
(rem:是bat中的注释)// 在service.bat头部setlocal下面加上JAVA_HOME和JRE_HOME,这俩都需要设置 setlocal set JAVA_HOME=F:\Program Files\Java\jdk\jdk1.7.0_80 set JRE_HOME=F:\Program Files\Java\jre\jre1.7.0_80
设置service的名字
// 找到set SERVICE_NAME=XXX修改为想要的名字即可: rem Set default Service name,DISPLAYNAME是显示在services.msc中的名字 set SERVICE_NAME=Tomcat7-2 set DISPLAYNAME=Apache Tomcat 7.0 %SERVICE_NAME%
2. 安装tomcat为service
管理员运行cmd,cd到tomcat的bin目录下,直接执行
// 格式:service.bat install/remove [service_name] [/user username],因为已经在service.bat中设置了名字,所以可以直接install service install
windows下较为简单,已经完成,下面说下可能出现的错误和可能需要的设置
3. 可能的问题和设置
打开tomcat服务GUI监控程序:tomcat7w.exe,出错
解决方案:
tomcat7w.exe是tomcat7服务的GUI程序,如果服务是你自定义的,那么exe名字必须手动改为和服务名字一样,比如:SERVICE_NAME=Tomcat7-2
那么
exe名字:tomcat7-2.exe(不区分大小写)启动服务报错“Windows 不能在 本地计算机 启动 Apache Tomcat… 错误代码 1。”
解决方案:在tomcat的bin下,打开tomcatXw.exe –> Starup 选项卡 –> Model 从jvm改为java。
Tips:
- 如果启动不了tomcatXw.exe 请重命名其名字为你安装服务的名字,或者安装服务时不要指定服务名字而用默认的即可。即:service.bat install 。
- 删除服务成功,但是services.msc中还有:任务管理器中删除tomcatXw.exe。
- 后来在logs下找到日志文件commons-daemon.2015-12-11.log,在其下看到了错误日志:
[2015-12-11..] [error] [1..] %1 不是有效的 Win32 应用程序。 [2015-12-11..] [error] [1..] Failed creating java F:\Prog..\jre7\bin\client\jvm.dll [2015-12-11..] [error] [1..] %1 不是有效的 Win32 应用程序。 [2015-12-11..] [error] [1..] ServiceStart returned 1 [2015-12-11..] [error] [1..] %1 不是有效的 Win32 应用程序。 [2015-12-11..] [info] [1..] Run service finished.
设置tomcat使用的JVM参数
这里我是想要设置其堆内存溢出时生成内存转储文件hprof为例。
(非服务下,其实跟本博文主题无关)使用startup.bat启动时:
#打开catalina.bat,按需设置即可,HeapDumpPath路径中不要有空格 rem ----- Execute The Requested Command --------------------------------------- set JAVA_OPTS=-Xms100m -Xmx100m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=F:\heapdump
安装为windows service后:
打开tomcat/bin下的tomcatXw.exe(或者你自定义设置的tomcat服务名字.exe),如下图按需设置
Linux
直接说怎么弄多个tomcat并配置为服务
1. 修改catalina.sh文件
设置本tomcat使用的环境变量
#在第一大块注释下写,JAVA_HOME和这一个Tomcat自身的目录 JAVA_HOME=/usr/local/java/jdk/jdk1.7.0_80 CATALINA_HOME=/usr/local/tomcat/tomcat-8090
2. 设置服务并自启
复制catalina.sh到系统启动目录下并个性化命名
[root@localhost bin]# cp /usr/local/tomcat/tomcat-8090/bin/catalina.sh /etc/rc.d/init.d/tomcat-8090
修改tomcat-8090文件的启动/关闭级别
#!/bin/sh # chkconfig: 35 70 70 # description: tomcat-8090 service desc 他们的意义我在另一篇博文中有介绍过,想看的http://blog.csdn.net/u010297957/article/details/50751656
将tomcat-8090服务配置自启,并加入linux服务监控
[root@localhost bin]# chkconfig --add tomcat-8090
此时,就可以在rc.d下的相应的3和5目录下看到S70tomcat-8090,并在0、1、2、4、6目录看到K70tomcat-8090了
已经完成了,下面是一些手动的命令
1. reboot linux系统后,你就会看到tomcat-8090自己已经启动了 2. service tomcat-8090 start/shutdown/restart