RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 893531
Accepted
Сергей
Сергей
Asked:2020-10-16 01:19:03 +0000 UTC2020-10-16 01:19:03 +0000 UTC 2020-10-16 01:19:03 +0000 UTC

通过脚本名称获取进程 pid

  • 772

您需要pid在后台运行 2 个或更多脚本。然后pid他们将被关闭,kill $pid但问题是如何让他们知道进程名称?例如,我system('ps aux | grep php');通常用来获取所有进程,我看到如下内容:

username 676878 100 0.0 296980 14372 ? R 13:04 3:27 /opt/cpanel/ea-php56/root/usr/bin/php/home/username/Business_Logic/testProc.php 
username 676943 99.8 0.0 296980 14372 ? R 13:04 3:25 /opt/cpanel/ea-php56/root/usr/bin/php/home/username/Business_Logic/testProc.php 
username 693011 1.0 0.0 461388 15888 ? Ss 13:08 0:00 lsphp 
username 693146 0.0 0.0 462164 6768 ? Ss 13:08 0:00 lsphp:/home/username/public_html/index.php 
username 693147 0.0 0.0 12228 1264 ? S 13:08 0:00 sh -c ps aux | grep php
username 693149 0.0 0.0 8492 696 ? S 13:08 0:00 grep php 

我需要杀死的前两个进程。但是,如果您进一步输入:

$proc_str = exec('ps aux | grep /home/username/Business_Logic/testProc');

我将在答案中看到一个完全不同的答案pid:

username 729968 0.0 0.0 8492 704 ? S 13:13 0:00 grep /home/username/Business_Logic/testProc 

它应该在$proc_str pid正确的过程中得分并杀死它,但这并没有产生预期的效果 - 过程仍然有效。

UPD 需要完成的过程我这样运行了几次:

system('php /home/usernam/Business_Logic/testProc.php > /dev/null 2>&1 &');

下一个杀:

exec('Killall testProc.php'); // ||
exec('Killall testProc');     // ||
exec('Killall  /home/username/Business_Logic/testProc.php');

结果,进程继续挂起。只有exec('kill 568454');帮助。

UPD_2

exec('pkill -f proc_name');

这个命令有帮助,一次杀死所有进程proc_name.php。

php
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Best Answer
    KoVadim
    2020-10-16T01:32:19Z2020-10-16T01:32:19Z

    我认为是时候让你了解一下 pkill,它可以通过名称杀死一个进程,killall,它可以通过名称杀死许多进程,或者 pgrep,它实际上通过它的名称返回一个进程的 pid,或者 pidof(它查找直接点名)。在 ubuntu 中,这些命令通常在 procps 包中,在 gent - sys-process/procps

    • 3
  2. Сергей
    2020-10-16T17:18:17Z2020-10-16T17:18:17Z

    最后,以下命令帮助了我:

    exec('pkill -f proc_name');
    

    使用脚本的几个运行实例proc_name.php,它会立即结束所有内容。

    • 2

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5