Chinaunix首页 | 论坛 | 博客
  • 博客访问: 334949
  • 博文数量: 64
  • 博客积分: 2301
  • 博客等级: 大尉
  • 技术积分: 570
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-25 11:48
文章分类

全部博文(64)

文章存档

2013年(5)

2012年(6)

2011年(36)

2010年(7)

2009年(10)

分类: LINUX

2010-01-19 16:09:35

今天因为更新了程序,需要重启tomcat,结果重新启动后ps –ef|grep tomcat查看进程出现了20几个tomcat进程。我还以为是新传的程序出的问题,于是把另外的一个测试的tomcat也重新启动,结果也是一样,出现了20几个tomcat进程,排除了是新传的程序问题。我仔细观察了下所有的同一位置的tomcat进程,发现后边的20几个左右的进程的父进程都是同一进程,那么就有可能是tomcat的多进程启动方式,但是我从来没有听说过tomcat的多进程启动,一般启动后就只有一个进程,于是我开始使用百度,google搜索,结果发现有人也是tomcat启动后出现了多个进程,回答如下:

mysql多进程的时候有高手回答如下: linux的线程是通过进程实现的。 2.6内核32位系统上 gcc -static编译出来的程序 会让多线程表现成多进程的状态,出现同名多个PID 不带-static就表现为只有一个PID 64位系统,不管加不加-static,都只有一个PID 感觉32位和64位在线程的实现不一样。

  我个人感觉这个回答是有道理的,但是我的机器上根本就没有使用mysql,最近更是没有用gcc编译过什么程序,所以他的答案虽然有道理但是却没有解决我遇到的问题。之后继续在网上搜索,但是相关的信息很少。受到上边关于mysql的解释的启发,我开始搜索tomcat的多线程,结果还真搜出不少东西,其中有个人做tomcat的多线程测试,启动东后,确实有好多线程,但是和我自己的启动后程序对照,确实有很大差别,确切的说我启动的是多进程,而他的确实是多线程。我发现自己又走到了死胡同。此时,我又回到系统,用ps –ef查看了下所有的程序,结果和平时的没什么差别,一些oracle,一些tomcat。此时我想是否和oracle有关系,但是马上又否定了自己的想法,因为以前机器上也有oracle,但是启动tomcat的时候却没有问题。之后我又想起自己的机器最近添加了些oracle的环境变量,于是我将新加的环境变量注释掉之后重新启动测试tomcat,结果一切恢复正常。原来真是oracle环境变量惹得祸。

   所以出现这种问题的原因是启动tomcat的时候,读取了oracle的环境变量,使用了oracle的设置。

小弟水平有限,具体原因请高手帮忙解释。

阅读(5959) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-11-26 18:03:57

ps ef 是线程 ~~