• 进程操作


    查看现有进程

    
    
    $ ps -ef

    或者:

    $ ps -aux
     PID     USER    PR     NI  VIRT    RES    SHR S  %CPU %MEM     TIME+ 
    gpu245 122844 1 0 09:17 ? 00:00:00 /lib/systemd/systemd gpu245 122845 122844 0 09:17 ? 00:00:00 (sd-pam)

    此时如果我想杀了进程(ID:
    122844)就在终端输入:
    $ kill -s 9 122844

    其中-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程。

    改进:

    把ps的查询结果通过管道给grep查找包含特定字符串的进程。管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
    $ ps -ef | grep firefox
    #或者!!
    $ pgrep firefox
    使用pidof:
    (pid of xx)也就是 xx的PID。
    $ pidof firefox-bin
    $ps -ef | grep firefox | grep -v grep | cut -c 9-15 | xargs kill -s 9

    说明:

    “grep firefox”的输出结果是,所有含有关键字“firefox”的进程。

    “grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。

    “cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

    “xargs kill -s 9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数,并执行该命令。“kill -s 9”会强行杀掉指定进程。

    知道pgrep和pidof两个命令,干嘛还要打那么长一串!

    $ pgrep firefox | xargs kill -s 9

    难道每次都要调用xargs把PID传递给kill?答案是否定的:

    $kill -s 9 `ps -aux | grep firefox | awk '{print $2}'`

    pgrep。

    $kill -s 9 `pgrep firefox`

    pkill:

    pkill=pgrep+kill。

    $pkill - firefox

    说明:"-9" 即发送的信号是9,pkill与kill在这点的差别是:pkill无须 “s”,终止信号等级直接跟在 “-“ 后面。之前我一直以为是 "-s 9",结果每次运行都无法终止进程。

    killall:

    killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。pkill或者pgrep只要给出进程名的一部分就可以终止进程。

    $killall -9 firefox
     

    参考:https://www.cnblogs.com/liaojie970/p/7131043.html

  • 相关阅读:
    java web项目打包.war格式
    version 1.4.2-04 of the jvm is not suitable for thi
    Sugarcrm Email Integration
    sharepoint 2010 masterpage中必须的Content PlaceHolder
    微信开放平台
    Plan for caching and performance in SharePoint Server 2013
    使用自定义任务审批字段创建 SharePoint 顺序工作流
    Technical diagrams for SharePoint 2013
    To get TaskID's Integer ID value from the GUID in SharePoint workflow
    how to get sharepoint lookup value
  • 原文地址:https://www.cnblogs.com/hozhangel/p/10718863.html
Copyright © 2020-2023  润新知