2017-01-30 8 views
1

Я ищу по одной теме уже почти неделю и до сих пор не могу найти правильный ответ в Интернете. Я хочу сделать несколько команд shell_exec или exec через мой сервер, на котором запущен собственный PHP, и для этого я буду использовать shell_exec или функцию exec. Но моя проблема в том, что каждый раз, когда я вызываю функцию, она создает новый экземпляр оболочки и запускается. Но я хочу, чтобы все мои команды выполнялись в одном экземпляре оболочки. Любая помощь по этому поводу?Как мне вызвать shell_exec или exec в php, если я хочу, чтобы все команды выполнялись на одном экземпляре оболочки, а не на разных экземплярах каждый раз?

ответ

0
  1. Открыть новый сеанс экрана. Имя его test:

    screen -S test

  2. Detach из сеанса экрана с Ctrl + с последующим д.

  3. Отправить команду на этот экран сессии:

    screen -S test -X stuff 'echo enter command here'`echo -ne '\015'`

  4. Wrap выше команды в Exec и установить соответствующие права доступа (то есть, PHP должен иметь возможность доступа к сессии test экрана).
+0

Извините, но новичок в PHP, можете быть более конкретным. Я сделал все это в терминале, но у меня ничего не было. –

+0

Если вы запустите «screen -S test», откроется сеанс сеанса с именем 'test', и там будет запущена оболочка. Сеанс экрана выполняется, даже если вы выходите с сервера. Третья команда отправляет команды этой оболочке вместо запуска и закрытия оболочки каждый раз, когда вы используете shell_exec(). – simoncpu