使用PHP获取正在运行的进程列表

时间:2018-03-13 09:03:28

标签: php

我想获取当前用户的运行进程列表,以确保“file.php”是否仍在运行? 我正在使用cPanel,网络服务器是Litespeed。

4 个答案:

答案 0 :(得分:1)

以下是您的需求:

  1. 准备操作系统自定义查询以列出正在运行的进程,在Linux上例如{ "offset":0, "count":3, "totalCount":300, "result":[ { "a1":a, "b1":b, "c1":c }, { "a2":a, "b2":b, "c2":c }, { "a3":a, "b3":b, "c3":c }, . . . . . . , { "an":a, "bn":b, "cn":c } ]
  2. 执行PHP命令exec或类似的
  3. 解析返回的值,如果需要找到运行的文件aka file.php

答案 1 :(得分:0)

首先,您需要在命令提示符下编写top。然后您可以看到所有正在运行的服务列表。

转到php代码并使用exec函数运行此命令。

答案 2 :(得分:0)

显示任务,将错误重定向到NUL(隐藏错误)

exec("tasklist 2>NUL", $task_list);

echo "<pre>"; print_r($task_list);

答案 3 :(得分:0)

$execstring='ps -f -u www-data 2>&1';
$output="";
exec($execstring, $output);
print_r($output);

会给你这样的东西

Array (
    [0] => UID        PID  PPID  C STIME TTY          TIME CMD
    [1] => www-data  1587   790  0 14:04 ?        00:00:00 /usr/sbin/apache2 -k start
    [2] => www-data  7336   790  0 17:45 ?        00:00:00 /usr/sbin/apache2 -k start
    [3] => www-data 13426 16637  0 20:41 ?        00:00:00 sh -c ps -f -u www-data 2>&1
    [4] => www-data 13427 13426  0 20:41 ?        00:00:00 ps -f -u www-data
    [5] => www-data 13428 22299  0 20:41 ?        00:00:00 sh -c ps -f -u www-data 2>&1
    [6] => www-data 16412   790  0 15:19 ?        00:00:00 /usr/sbin/apache2 -k start
    [7] => www-data 16637   790  0 15:19 ?        00:00:00 /usr/sbin/apache2 -k start
    [8] => www-data 18977   790  0 06:25 ?        00:00:00 /usr/sbin/apache2 -k start
    [9] => www-data 18978   790  0 06:25 ?        00:00:00 /usr/sbin/apache2 -k start
    [10] => www-data 18979   790  0 06:25 ?        00:00:00 /usr/sbin/apache2 -k start
    [11] => www-data 18981   790  0 06:25 ?        00:00:00 /usr/sbin/apache2 -k start
    [12] => www-data 18983   790  0 06:25 ?        00:00:00 /usr/sbin/apache2 -k start
    [13] => www-data 19735     1  0 15:39 ?        00:00:00 php sql_runner.php
    [14] => www-data 22299     1 13 Mar23 ?        1-02:30:32 php scheduler.php
    [15] => www-data 22768   790  0 06:38 ?        00:00:00 /usr/sbin/apache2 -k start )

不,您可以使用正则表达式为您的文件过滤/搜索。