本文记录如何在linux平台上配置tomcat以指定的身份运行、配置为linux服务,并设置为开机启动运行。
运行环境描述:
操作系统: Ubuntu14.0.4
Tomcat版本号: Tomcat 7.0.33
JDK版本: 1.6以上.
以下涉及到命令操作的地方,如无特别说明,均表示以root管理员身份运行(或者以普通用户的sudo方式跨权运行)。
一、编译安装tomcat daemon服务守候程序:
cd到tomcat的bin目录下,并解压commons-daemon-native.tar.gz:
cd
/opt/tomcat/bin/
tar
xvzf commons-daemon-native.
tar
.gz
解压后会生成一个commons-daemon-1.0.10-native-src目录,cd到这个目录的unix子目录:
cd
commons-daemon-1.0.10-native-src
/unix
(1). 执行编译配置:
.
/configure
#(注意:需要先安装好
make
,gcc等编译工具)
在执行时可能会出现如下错误提示:
...
*** Java compilation tools ***
checking
for
JDK location... configure: error: Java Home not defined. Rerun with --with-java=... parameter
这是由于没有指定jdk目录所致的,那么按提示指定with-java参数(指向jdk目录)。如下:
.
/configure
--with-java=
/opt/jdk
运行完成后会提示如下信息说明操作成功:
*** All
done
***
Now you can issue
"make"
执行make:
make
(2). 执行make后会生成一个jsvc的文件,将其复制到tomcat的bin目录。
在tomcat/bin目录里面有一个daemon.sh 这个文件就是启动和关闭tomcat的服务守候程序。
注意:之前的一些tomcat版本,例如tomcat 6.0.x, 可能没有这个文件, 其实这个文件就是放在commons-daemon-x.x.x-native-src/unix/samples/Tomcat7.sh这儿的(此目录还有一个Tomcat5.sh),只不过新版本的tomcat把它移动到了bin目录下,并取名为daemon.sh了。所以,如果您使用的是tomcat 6,那就把这个Tomcat7.sh文件复制到bin目录下,并取名为daemon.sh即可。
(3). 修改daemon环境变量 :
用文本编辑器(vi或emacs等)编辑它,找到类似下面这样配置段:
test
".$TOMCAT_USER"
= . && TOMCAT_USER=tomcat
# Set JAVA_HOME to working JDK or JRE
# JAVA_HOME=/opt/jdk-1.6.0.22
修改TOMCAT_USER=tomcat为您要指定身份运行的linux账号用户名,此处指定用户名为tomcat。并把JAVA_HOME=...前面的注释(即“#”号)去掉,并设置为jdk的安装目录路径,最后,修改好后的配置段变成如下:
test
".$TOMCAT_USER"
= . && TOMCAT_USER=tomcat
# Set JAVA_HOME to working JDK or JRE
JAVA_HOME=
/opt/jdk
现在修改/opt/tomcat目录的所有者为为tomcat(即您要指定身份运行的linux帐号):
chown
-R tomcat:tomcat
/opt/tomcat
为tomcat/bin/目录下的*.sh添加相应的x权限位:
chmod
a+x
/opt/tomcat/bin/
*.sh
现在,可以测试一下daemon是否可以启动运行,启动方式如下:
/opt/tomcat/bin/daemon
.sh start
(如果出错,重点查验tomcat的bin目录下的*.sh是否有x可执行权限、linux帐号是否有tomcat目录的读写权限,是否有tomcat/logs日志目录的写权限等等。)如无错误,则tomcat的daemon守候程序已经设置成功了,可以访问http://localhost:8080/试一下服务是否启动。
停止tomcat, 对应的命令为:
/opt/tomcat/bin/daemon
.sh stop
二、添加tomcat为debian的服务
在上面的配置正确后,要将daemon.sh添加成为debian的服务就非常简单了,只需要创建一个软链到/etc/init.d/目录中即可:
ln
-s
/opt/tomcat/bin/daemon
.sh
/etc/init
.d
/tomcat7
这样就创建了一个名为tomcat7的服务。
现在就可以用它启动/关闭tomcat了:
启动tomcat7服务:
/etc/init
.d
/tomcat7
start
停止tomcat7服务:
/etc/init
.d
/tomcat7
stop
最后,再查看一下进程, 已经可以看到,tomcat是以指定的用户身份运行了。
三、设置tomcat服务开机启动
如果您想让Tomcat的daemon守候程序在开机后自动运行,只需运行下面命令,将服务设置为自启动即可:
update-rc.d tomcat7 defaults
如果以后想想取消自动启动,则运行:
update-rc.d tomcat7 remove