2016-10-13 6 views
0

Я подключаюсь к серверу через SSH через PHP, а затем с помощью exec запускаю программу python на этом сервере.PHP exec command не возвращает полные данные из сценария Python

Если подключиться к этому серверу через замазку и выполнить ту же команду через командную строку, я получаю результат, как:

Оценка ....

Подключение ....

Извлечение данных ....

1) Заявление 1

2) Заявление 2

.

.

.

N

программа Python

N) Заявление написано кем-то другим ...

При подключении через SSH PHP, я могу выполнить $ssh->exec("ls") и получить полные результаты, собственно, как по команде сервера линия. Но когда я пробовал $ssh->exec("python myscript.py -s statement 0 0 0");, я не смог получить полные результаты, но я получаю случайную строку как выход.

В общем, если кто-то испытал ту же проблему и решил, пожалуйста, дайте мне знать.

Благодаря

+0

Какие случайные строки? Можете ли вы показать пример? – furas

+0

Прошу прощения, я не могу показать результат. Но учтите, что 23) заявление 23 как выход. Но у вас должен был быть такой, как в вопросе – user3431704

ответ

2

Возможно, это вызвано буферизацией вывода. Попробуйте добавить параметр -u в команду Python - это означает, что stdout, stdin и stderr не загружены.

+0

Где в этой строке? $ ssh-> exec ("python myscript.py -s statement 0 0 0"); – user3431704

+0

Еще одна вещь, которую я хочу задать, это: Если я получаю результат по вашему методу, каков путь к правильной архитектуре вывода? Как json или xml? – user3431704

+0

Добавить '-u' после' python': '$ ssh-> exec (" python -u myscript.py -s statement 0 0 0 ")' – mhawke

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

  • Нет связанных вопросов^_^