LINUX.ORG.RU

Что нужно добавить/исправить, чтоб не зависало.(python )

 , ,


0

1

Есть скрипт: https://pastebin.com/avf4MZWj

Работает, за исключением того, что если ввести команду которой нет или просто ничего не вводить. Зависает, что нужно исправить. Спасибо.

p/s Для тех кто в танке:

mkfifo foo ; nc -lk 9101 0<foo | /bin/bash 1>foo
python3 script.py 127.0.0.1 9101 

Ответ на: комментарий от iamweasel

Добавил s.settimeout(1.0), срабатывает исключение socket.error. А хотелось бы чтоб сессия не убивалась.

bikes
() автор топика
Ответ на: комментарий от bikes

хотя в этом случае:

nc.traditional -l -p 9101 -e /bin/bash
тоже самое

bikes
() автор топика
Ответ на: комментарий от bikes

Это я про то, что ваше решение как-то глобально не продумано, раз stderr не показывается пользователю. И скрипт не зависает, он ждёт вывода от bash, а тот ничего не выводит. Может вам нужно запускать bash с опцией -i, тогда он будет выводить $PS1 по завершению команды, то есть всегда будет вывод, который ваш скрипт прочитает...

mky ★★★★★
()
Ответ на: комментарий от mky

с -i не работает. Можно вот так сделать:

python -c 'import pty; pty.spawn("/bin/bash")' 
тогда ошибки передаются...

bikes
() автор топика

Какую задачу ты хочешь решить? Принципиально для решения использовать сокеты?

Спрашиваю, потому что есть несколько способов более комфортного и безболезненного подключения к шеллу.

xerx
()

C добавь.

anonymous
()
Ответ на: комментарий от xerx

потому что есть несколько способов более комфортного и безболезненного подключения к шеллу.

нужно, чтоб был promt. Т.е. строка приглашения, поэтому взял питон. В неткатах его нет. или я не знаю, как его вызвать...

bikes
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.