Ubuntu 中与 Windows tasklist 命令等效的命令

Ubuntu 中与 Windows tasklist 命令等效的命令

我在 PHP 中编写了几行代码来检查我的服务器上当前是否正在运行特定进程。如果进程正在运行,我会添加一个用于与该进程交互的脚本。以下是代码

ob_start(NULL, 0, PHP_OUTPUT_HANDLER_CLEANABLE);
system('tasklist /FI "IMAGENAME eq websocket.exe" /FO TABLE /NH');
$return = ob_get_clean();
if (!($return === false || stripos($return, 'websocket') === false)) {
    $hData['Script'][] =    'websocket.js';
}//END IF

目前,系统调用仅在 Windows 中可用,因为tasklist它是 Windows 特定命令。由于我仍在学习 Ubuntu 和 Unix,我无法想出一种方法来获得与我的 Windows 命令类似的输出。我曾考虑过使用它ps来检查我的进程,但我不知道如何根据进程名称优化结果。

Ubuntu 中是否有类似于 Windows 命令的命令tasklist /FI "IMAGENAME eq websocket.exe" /FO TABLE /NH,可以让我过滤掉不匹配的进程?目标是让它对 Ubuntu 和 PHP 都有效。因此建议尽可能过滤结果

额外的信息

我计划使用它来检查我的 websocket 服务器是否正在运行,以及它是否包含脚本,以便用户可以使用它。

我尝试这样做,ps -ef | grep -i "websocket"但它会返回grep --color=auto -i websocket符合 PHP 标准并包含脚本的内容。我想尽量避免这种做法。

答案1

只需将结果传输到grep -v grep类似的ps -ef | grep -i "websocket" | grep -v grep方法即可删除其中包含 grep 的 ps 记录。

相关内容