У меня есть пара строк в 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. Поэтому рекомендуется максимально фильтровать результаты.
Дополнительная информация
Я планирую использовать это, чтобы проверить, работает ли мой сервер веб-сокетов и включает ли он сценарий, чтобы пользователи могли его использовать.
Я пытался сделать ps -ef | grep -i "websocket"
но он возвращает grep --color=auto -i websocket
который соответствует критериям для PHP и включает скрипт. Я хотел бы попытаться избежать этого пути.