Я ищу по одной теме уже почти неделю и до сих пор не могу найти правильный ответ в Интернете. Я хочу сделать несколько команд shell_exec или exec через мой сервер, на котором запущен собственный PHP, и для этого я буду использовать shell_exec или функцию exec. Но моя проблема в том, что каждый раз, когда я вызываю функцию, она создает новый экземпляр оболочки и запускается. Но я хочу, чтобы все мои команды выполнялись в одном экземпляре оболочки. Любая помощь по этому поводу?Как мне вызвать shell_exec или exec в php, если я хочу, чтобы все команды выполнялись на одном экземпляре оболочки, а не на разных экземплярах каждый раз?
1
A
ответ
0
Открыть новый сеанс экрана. Имя его
test
:screen -S test
Detach из сеанса экрана с Ctrl + с последующим д.
Отправить команду на этот экран сессии:
screen -S test -X stuff 'echo enter command here'`echo -ne '\015'`
- Wrap выше команды в Exec и установить соответствующие права доступа (то есть, PHP должен иметь возможность доступа к сессии
test
экрана).
Извините, но новичок в PHP, можете быть более конкретным. Я сделал все это в терминале, но у меня ничего не было. –
Если вы запустите «screen -S test», откроется сеанс сеанса с именем 'test', и там будет запущена оболочка. Сеанс экрана выполняется, даже если вы выходите с сервера. Третья команда отправляет команды этой оболочке вместо запуска и закрытия оболочки каждый раз, когда вы используете shell_exec(). – simoncpu