如何以非 root 用户身份启动、关闭和重新启动 tomcat。我在 ubuntu 机器上安装了 tomcat5.x(usr/share/tomcat)。tomcat 目录具有完全权限。当我以普通用户身份关闭(/usr/share/tomcat/bin/shudown.sh)或启动(/usr/share/tomcat/startup.sh)tomcat 时,它会正常启动和关闭,就像以 root 用户身份执行一样,但即使以非 root 用户身份启动 tomcat 后,我也无法访问网页。
用户1@station2:/usr/share/tomcat/webapps$../bin/shutdown.sh
使用 CATALINA_BASE:/usr/share/tomcat
使用 CATALINA_HOME:/usr/share/tomcat
使用 CATALINA_TMPDIR:/usr/share/tomcat/temp
使用 JRE_HOME:/usr
2010 年 10 月 4 日下午 6:41:11 org.apache.catalina.startup.Catalina stopServer
严重:Catalina.stop:
java.net.ConnectException:java.net.PlainSocketImpl.socketConnect(本机方法)处拒绝连接
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at java.net.Socket.connect(Socket.java:495)
at java.net.Socket.<init>(Socket.java:392)
at java.net.Socket.<init>(Socket.java:206)
at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:421)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:337)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
答案1
ubuntu 上的 Tomcat 将配置存储在 /etc/tomcat* 下。普通用户可能没有读取所有配置文件的权限(例如 /etc/tomcat6/tomcat-users.xml)。如果您想以普通用户身份运行 tomcat 进行测试/开发,我建议您只下载 tomcat 二进制发行版并解压/解压缩到 $HOME 下的某个目录。然后运行 bin/startup.sh 就大功告成了。这还省去了每次更改 tomcat 配置时运行 sudo 的麻烦。
顺便说一句,如果您对 Tomcat5 没有特殊要求,我建议您使用较新的版本(Tomcat6/Tomcat7)。