windows/linux进程操作

版权声明:本文为博主原创文章,转载请注明链接地址。谢谢! https://blog.csdn.net/wdy_2099/article/details/78911457
背景:
    近日,在用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 -ano

        C:\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]
    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

猜你喜欢

转载自blog.csdn.net/wdy_2099/article/details/78911457