我在suse linux上用root用户登录了系统,并将tomcat解压至home目录下,然后运行tomcat,一切都好像没问题了。但不知是什么原因,tomcat在运行一段时间后就会挂掉,崩溃了。查看了logs也没有发现什么异常情况报告,只要重启一下tomcat又好了,看了代码方面的,并没发现有导致内存泄露的代码,于是猜想,是不是在linux下布署tomcat时是用root的权限布署的,而访问网页时,因为权限的问题,所以令到所占用的内存没有得到释放而导致tomcat崩溃呢?那我在这里问问大家:一、你们是如何布署tomcat的呢,在linux下?二、运程访问服务器时,访问的用户又是谁呢?(是指linux下的用户权限是那个)知道的请回答!谢谢!

解决方案 »

  1.   

    不好意思,对于第二点我没说清楚,我的意思是这样的。如:http://www.aaa.com访问我的首页时,这时来访问的用户会是那个用户的权限呢?是root的还是什么?
      

  2.   

    外网访问和你自己登陆系统有关系吗 只要你开启了对应的接口和tomcat服务已经打开 谁都可以访问的 在说了你访问的只是在8080 或其他自己制定的端口下的webroot下的内容 
      

  3.   

    1.是不是在linux下布署tomcat时是用root的权限布署的,而访问网页时,因为权限的问题
    --------------------------
    有这种可能。但是权限问题的话,你可以返回root用户,使用chmod命令,去更改相应目录的访问权限2.你们是如何布署tomcat的呢,在linux下?
    ---------------------------------------------
    1).下载apache-tomcat-6.0.18.tar.gz并解压到某个目录下(建议解压时改个短名,如tomcat6)
    2).找到tomcat6/bin/startup.sh并执行
    3).修改tomcat6/conf目录下tomcat-users.xml文件的内容,改为如下内容
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="manager"/>
      <role rolename="admin"/>
      <user username="admin" password="" roles="admin,manager"/>
    </tomcat-users>

    4).重启tomcat(shutdown.sh是关闭命令;startup.sh 是启动命令)
    5).如果你在linux下也使用myeclipse的话,那剩下的操作和在windows下没有什么区别;如果你在linux下使用的是eclipse,那就建议使用ANT脚本进行web项目的发布,而tomcat则独立启动或关闭
    3.运程访问服务器时,访问的用户又是谁呢?(是指linux下的用户权限是那个)
    -----------------------------------------------------
    只要你成功配置好了tomcat,远程访问的和你平时在windows操作基本上一致。唯一需要说明的是,如果你想让外网进行访问,那就得在路由器上做对应的端口映射!!
      

  4.   

    谢谢楼上的详细回答,你说的与我所做的基本上是一致的,除了更改tomcat-users.xml文件外,另,我没有发现你在这个文件里进行了什么更改呀?
    另,我再想问下以下这个问题:
    我装的是suse linux,在设置swap的时候设置了5G,但后来得知x86的linux并不支持swap超过2G的,所以想进行更改。由于装的是服务器,机子在电信的机房里,并设置了不能用vnc来连接,只能用SSH来连,请问,在这情况下,如果更改swap这个分区的空间大小呢?谢谢
      

  5.   


    那个xml文件默认情况下是没有什么东西的。。或许你的TOMCAT版本和我下载的不一样吧。不过既然有那些信息那就无关紧要了。
    关于你用SSH连接远程服务器想更改SWAP分区大小的问题。你则可以通过修改/etc/inittab文件,将运行级别改为1 - Single user mode,然后进入到单用户模式,用如下几个命令编辑swap分区:
    1. swap -l (显示swap 分区)
    2. swap -d c0t0d0s1 (swap 分区)
    3. format (重新分区,这一步是重点,你可查相关指令帮助)
    4. swap -a c0t0d0s1 (swap 分区)
    5. swap -l
      

  6.   

    哦,谢谢楼上的解答。我想问下c0t0d0s1这个是什么意思?
      

  7.   

    > 布署tomcat时是用root的权限布署的
    建议你另开个用户 如 tomcat. 全部 chown 
    再用这个用户来运行 startup.sh
      

  8.   

      不知道楼主解决了没有,但调整分区要重新启动的,具体我没有做过,但我在linux服务器上部署tomcat跟windows的差不多,设置好环境变量就可以了,并没有楼主说的崩溃问题。
      关于第二个用户访问的问题,小弟认为不存在用户权限的问题吧。等待更好的解决方法。