2016-12-01 5 views
0

Есть ли какая-нибудь команда, которую я могу запустить, чтобы убить определенный процесс на удаленном сервере Ubuntu с помощью PHP?Как убить процесс на удаленном сервере Ubuntu с помощью PHP?

Также есть ли какая-либо команда, чтобы перечислить весь процесс PHP, запущенный на удаленном сервере Ubuntu?

я использовал,

пс Окс | grep php

, чтобы перечислить весь процесс PHP, после входа в удаленную машину с использованием ssh. Но тогда, возможно ли получить список процессов с локальной машины?

Примечание: Я выполняю несколько заданий cron каждые 15 минут. И сохранение идентификатора процесса для каждого в БД. Существуют сценарии, в которых мне нужно убить определенный идентификатор процесса из моего инструмента мониторинга (на другом сервере).

Если есть какая-либо команда, то я могу использовать ее в своем скрипте PHP для вызова. Спасибо!

ответ

0

Этот вопрос может быть на askubuntu.

Если у вас есть SSH-доступ к вашему серверу, вы вошли в него.

Затем вы можете сделать sudo killall php, чтобы убить весь процесс PHP или sudo kill <idprocess>.

Обратите внимание, что если у вас запущен сервер Apache, он может создавать новые процессы. Отключение Apache позволяет не создавать новые процессы.

EDIT:

По this post вы можете использовать пакет, чтобы дать пароль непосредственно без интерактивности. Благодаря этому ваш скрипт может войти на сервер, а затем уничтожить процессы и, наконец, выйти.

+0

Я согласен. Но тогда мне нужно убить с одного сервера (например, localhost) на удаленный сервер через код ?. И поэтому я спросил здесь, если предположим, что я могу получить какое-то другое решение с использованием PHP, так как мне нужно решение только с помощью кода. –

+0

Я не понимал, что вам нужно сделать это удаленно со сценарием, не войдя в систему с помощью ssh. Сценарий bash может это сделать, нет? Скрипт мог войти на сервер и убить процессы. – AnthonyB

+0

Добавлено в подробности. –

0

Вы можете использовать функцию posix_kill() для отправки любого сигнала в процесс. В зависимости от ваших привилегий вы можете увидеть или не увидеть ожидаемые результаты.

SIGKILL постоянный отправит (как и следовало ожидать) SIGKILL.

Вы ни в коем случае не должны ничего выполнять, используя комбинацию exec() и sudo. Это означает, что ваша установка уязвима для множества потенциальных противников.

+0

Реальный вопрос не убивает процесс, это делает его удаленно. Но действительно posix_kill кажется полезным. – AnthonyB

+0

Вопрос заключается в том, чтобы делать это удаленно с PHP - я знаю, что я просто отвечаю, как это сделать локально с PHP, но PHP предназначен для удаленного вызова. Просто называть этот скрипт с 'curl' должно быть хорошо, если у него уже есть аутентификация (которая, как я полагаю, уже присутствует для остальной части приложения) – moopet

+0

PHP можно вызывать удаленно только с использованием веб-сервера. Таким образом, вы можете просто создать веб-интерфейс с сервером Apache (или другим). Это похоже на небольшой веб-сайт, только для вашего использования. Конечно, с аутентификацией. – AnthonyB

Смежные вопросы