文章目录
java_2">1、ps -ef | grep java
root@shipper:~# ps -ef | grep java
root 1371 1 0 Sep05 ? 02:22:08 java -jar -Djava.security.egd=file:/dev/./urandom /root/supporterSys.jar --spring.profiles.active=prod
root 19969 19954 0 15:37 pts/1 00:00:00 grep --color=auto java
2、kill 1371
root@shipper:~# kill 1371
java_12">3、ps -ef | grep java
root@shipper:~# ps -ef | grep java
root 19981 19954 0 15:37 pts/1 00:00:00 grep --color=auto java
java_jar_supporterSysjar_springprofilesactiveprod__17">4、nohup java -jar supporterSys.jar --spring.profiles.active=prod &
root@shipper:~# nohup java -jar supporterSys.jar --spring.profiles.active=prod &
[1] 19994
root@shipper:~# nohup: ignoring input and appending output to 'nohup.out'
java_24">5、ps -ef | grep java
root@shipper:~# ps -ef | grep java
root 19994 19954 92 15:40 pts/1 00:00:35 java -jar supporterSys.jar --spring.profiles.active=prod
root 20059 20028 0 15:41 pts/2 00:00:00 grep --color=auto java
root 1371 1 0 Sep05 ? 02:22:08 java -jar -Djava.security.egd=file:/dev/./urandom /root/supporterSys.jar --spring.profiles.active=prod
root 19994 19954 92 15:40 pts/1 00:00:35 java -jar supporterSys.jar --spring.profiles.active=prod
这两者有什么区别?
您提供的两个进程信息显示了两个运行 supporterSys.jar
的 Java 进程。这两个进程有一些明显的区别,主要体现在启动方式、启动时间和资源占用等方面。下面是对这两个进程的详细分析:
1. 启动方式
进程 1371
root 1371 1 0 Sep05 ? 02:22:08 java -jar -Djava.security.egd=file:/dev/./urandom /root/supporterSys.jar --spring.profiles.active=prod
- 启动用户:
root
- 父进程 ID:
1
(通常表示这是系统启动时的一个守护进程) - 启动时间:
Sep05
(9月5日) - 终端:
?
(表示这不是一个交互式终端,而是一个后台进程) - CPU 使用率:
0%
- 内存使用时间:
02:22:08
(表示这个进程已经运行了大约2小时22分钟) - 启动参数:
进程 19994
root 19994 19954 92 15:40 pts/1 00:00:35 java -jar supporterSys.jar --spring.profiles.active=prod
- 启动用户:
root
- 父进程 ID:
19954
(表示这是从另一个进程启动的) - 启动时间:
15:40
(当天的15:40) - 终端:
pts/1
(表示这是一个交互式终端) - CPU 使用率:
92%
(表示这个进程占用了大量的 CPU 资源) - 内存使用时间:
00:00:35
(表示这个进程已经运行了大约35秒) - 启动参数:
--spring.profiles.active=prod
:激活 Spring 的prod
配置文件。
2. 主要区别
-
启动时间:
- 进程 1371 从9月5日开始运行,已经运行了较长时间。
- 进程 19994 从当天的15:40开始运行,是一个较新的进程。
-
终端:
- 进程 1371 是一个后台进程,没有关联到任何终端。
- 进程 19994 是一个交互式终端进程,关联到
pts/1
。
-
CPU 使用率:
- 进程 1371 的 CPU 使用率为
0%
,表示它几乎不占用 CPU 资源。 - 进程 19994 的 CPU 使用率为
92%
,表示它占用了大量的 CPU 资源。
- 进程 1371 的 CPU 使用率为
-
启动参数:
- 进程 1371 额外设置了
-Djava.security.egd=file:/dev/./urandom
参数,用于优化随机数生成。 - 进程 19994 没有设置这个参数。
- 进程 1371 额外设置了
-
父进程 ID:
- 进程 1371 的父进程 ID 是
1
,表示它是系统启动时的一个守护进程。 - 进程 19994 的父进程 ID 是
19954
,表示它是从另一个进程启动的。
- 进程 1371 的父进程 ID 是
3. 可能的原因
- 进程 1371 可能是一个长期运行的服务,启动时配置了优化参数,运行稳定,占用资源较少。
- 进程 19994 可能是一个最近手动启动的进程,可能因为某些原因(如代码问题、数据量大、任务密集等)导致 CPU 占用过高。
4. 建议
-
检查进程 19994 的日志:
- 查看应用程序的日志文件,寻找可能导致高 CPU 使用率的原因。
- 使用
top
或htop
命令实时监控 CPU 使用情况。
-
比较两个进程的配置:
- 确认两个进程的配置文件是否一致,特别是数据库连接、线程池配置等。
- 检查是否有任务调度或定时任务在进程 19994 中执行,导致 CPU 占用高。
-
优化代码:
- 如果发现代码中有性能瓶颈,考虑优化代码或调整配置。
-
停止不必要的进程:
- 如果进程 19994 是一个重复启动的进程,可以考虑停止它,只保留一个稳定的进程。
通过这些步骤,您应该能够更好地理解这两个进程的区别,并解决可能存在的问题。如果您有任何其他问题或需要进一步的帮助,请告诉我!