windows/linux进程操作
2017-12-27 14:02
495 查看
背景: 近日,在用idea撸码的时候,启动了多个tomcat,此时idea突然奔溃了(莫名其妙就消失不见了,迷之尴尬...)。然后,我只能重新打开idea,再次启动tomcat的时候,提示"11:23 Error running 'tomcat7': Address localhost:1091 is already in use"的错误日志,发现端口被占用了,tomcat在idea奔溃的时候,没有被正常关闭。于是,就引出了如下问题:
windows操作系统进程
一. tasklist命令:
1) 使用帮助:tasklist /?
C:\Users\wangdy>tasklist /? TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH] 描述: 该工具显示在本地或远程机器上当前运行的进程列表。 参数列表: /S system 指定连接到的远程系统。 /U [domain\]user 指定应该在哪个用户上下文执行这个命令。 /P [password] 为提供的用户上下文指定密码。如果省略,则 提示输入。 /M [module] 列出当前使用所给 exe/dll 名称的所有任务。 如果没有指定模块名称,显示所有加载的模块。 /SVC 显示每个进程中主持的服务。 /APPS 显示应用商店应用及其关联的进程。 /V 显示详细任务信息。 /FI filter 显示一系列符合筛选器 指定条件的任务。 /FO format 指定输出格式。 有效值: "TABLE"、"LIST"、"CSV"。 /NH 指定列标题不应该 在输出中显示。 只对 "TABLE" 和 "CSV" 格式有效。 /? 显示此帮助消息。 筛选器: 筛选器名称 有效运算符 有效值 ----------- --------------- -------------------------- STATUS eq, ne RUNNING | SUSPENDED NOT RESPONDING | UNKNOWN IMAGENAME eq, ne 映像名称 PID eq, ne, gt, lt, ge, le PID 值 SESSION eq, ne, gt, lt, ge, le 会话编号 SESSIONNAME eq, ne 会话名称 CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为 hh:mm:ss。 hh - 小时, mm - 分钟,ss - 秒 MEMUSAGE eq, ne, gt, lt, ge, le 内存使用(以 KB 为单位) USERNAME eq, ne 用户名,格式为 [域\]用户 SERVICES eq, ne 服务名称 WINDOWTITLE eq, ne 窗口标题 模块 eq, ne DLL 名称 注意: 当查询远程计算机时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。 Examples: TASKLIST TASKLIST /M TASKLIST /V /FO CSV TASKLIST /SVC /FO LIST TASKLIST /APPS /FI "STATUS eq RUNNING" TASKLIST /M wbem* TASKLIST /S system /FO LIST TASKLIST /S system /U 域\用户名 /FO CSV /NH TASKLIST /S system /U username /P password /FO TABLE /NH TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"
2) 管道过滤查找对应任务
使用管道“|”符合配合findstr 命令使用:C:\Users\wangdy>tasklist | findstr java 映像名称 PID 会话名 会话# 内存使用 ========================= ======== ================ =========== ============ java.exe 4264 Console 1 5,264 K java.exe 1200 Console 1 97,528 K java.exe 836 Console 1 1,680 K java.exe 5772 Console 1 1,688 K java.exe 8496 Console 1 16,276 K java.exe 11152 Console 1 125,112 K
二. netstat命令:
1)查看所有系统进程netstat -anoC:\Users\wangdy>netstat -ano 活动连接 协议 本地地址 外部地址 状态 PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1136 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:1091 0.0.0.0:0 LISTENING 1200 TCP 0.0.0.0:1095 0.0.0.0:0 LISTENING 8496 TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 4400 TCP 0.0.0.0:8009 0.0.0.0:0 LISTENING 8496 TCP 0.0.0.0:8081 0.0.0.0:0 LISTENING 1200 TCP 0.0.0.0:8085 0.0.0.0:0 LISTENING 8496 ………… ………… ………… …………
2)过滤出指定进程
C:\Users\wangdy>netstat -ano | findstr 8081 TCP 0.0.0.0:8081 0.0.0.0:0 LISTENING 1200
三. taskkill命令:
1)杀掉被占用端口的进程先使用netstat -nao | findstr 1095查出指定端口的进程信息(PID)
C:\Users\wangdy>netstat -nao | findstr 1095 协议 本地地址 外部地址 状态 PID TCP 0.0.0.0:1095 0.0.0.0:0 LISTENING 14528 TCP [::]:1095 [::]:0 LISTENING 14528
根据查询到的PID杀掉指定进程
命令:taskkill /f /pid 指定进程号(PID) 其中:/f表示强制
C:\Users\wangdy>taskkill /f /pid 14528 成功: 已终止 PID 为 14528 的进程。
这样,windows下我们某些端口号被进程占用后,就可以杀掉了,杀掉后再次重启就没这个异常了,比如tomcat端口等。
linux上操作系统进程
linux大家常用,此处引生下就好了:1)查看系统进程: ps -ef
[root@iZ2zean9vwo40c7sg3aqrxZ ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Apr12 ? 00:00:04 /sbin/init root 2 0 0 Apr12 ? 00:00:00 [kthreadd] root 3 2 0 Apr12 ? 00:00:00 [migration/0] root 4 2 0 Apr12 ? 00:00:10 [ksoftirqd/0] root 5 2 0 Apr12 ? 00:00:00 [stopper/0] root 6 2 0 Apr12 ? 00:00:15 [watchdog/0] root 7 2 0 Apr12 ? 00:12:35 [events/0] root 8 2 0 Apr12 ? 00:00:00 [events/0] root 9 2 0 Apr12 ? 00:00:00 [events_long/0] root 10 2 0 Apr12 ? 00:00:00 [events_power_ef] root 11 2 0 Apr12 ? 00:00:00 [cgroup] root 12 2 0 Apr12 ? 00:00:00 [khelper] 4000 root 13 2 0 Apr12 ? 00:00:00 [netns] root 14 2 0 Apr12 ? 00:00:00 [async/mgr] ………… …………
2)管道过滤指定进程: | grep
[root@iZ2zean9vwo40c7sg3aqrxZ bin]# ps -ef | grep tomcat UID PID PPID C STIME TTY TIME CMD root 17110 1 83 13:53 pts/0 00:00:06 /usr/local/jdk8/jre/bin/java -Djava.util.logging.config.file=/usr/local/tomcat8/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat8 -Dcatalina.home=/usr/local/tomcat8 -Djava.io.tmpdir=/usr/local/tomcat8/temp org.apache.catalina.startup.Bootstrap start root 17129 17076 0 13:53 pts/0 00:00:00 grep tomcat [root@iZ2zean9vwo40c7sg3aqrxZ bin]#
3)杀掉指定进程:kill -9 PID 其中:-9表示强制
[root@iZ2zean9vwo40c7sg3aqrxZ bin]# kill -9 17110 [root@iZ2zean9vwo40c7sg3aqrxZ bin]# ps -ef | grep tomcat root 17159 17076 0 13:56 pts/0 00:00:00 grep tomcat [root@iZ2zean9vwo40c7sg3aqrxZ bin]#
杀掉再查看,对应进程就没有了。
END
相关文章推荐
- Windows/Linux环境下查看Java进程ID方法
- Linux 下 操作进程环境变量的函数和指令
- Linux管理员日记连载(3)简单易操作:类似Windows控制面板的Webmin
- Linux查看进程命令和具体操作
- Linux和Windows脚本中的延时操作
- 如何在 Linux/Unix/Windows 中发现隐藏的进程和端口
- linux进程的一些操作
- C#操作windows系统进程的方法
- 多进程之间的互斥信号量实现(Linux和windows跨平台)
- linux下操作tomcat进程
- linux与windows查看占用端口的进程ID并杀死进程
- 用习惯Linux的方式去操作Windows
- linux、windows下的进程间的通信方式、线程间的通信方式
- windows下用vmware操作linux分区
- [Linux进程]在父进程和子进程中分别对文件进行操作
- window 系统操作linux 【重启linux系统下的tomcat进程】
- linux & windows php操作redis
- windows及linux下使用python多进程编程
- windows下查看和操作linux分区文件的工具
- Linux程序进程前台后台切换操作