Запуск слушателя netcat в новом окне терминала из скрипта Python - PullRequest
0 голосов
/ 04 июля 2018

Всего нубов Python здесь, но пытается учиться

Я пытаюсь запустить новое окно терминала, на котором запущен прослушиватель netcat через порт 7777 из сценария python.

Я пытался ...

import os

netcat = '--command \"nc -nvlp 7777\"'
print ("Starting listener on port 7777")
from subprocess import call
call(['xfce4-terminal', netcat])

и

from subprocess import call
call(['xfce4-terminal', '--command', '"nc -nvlp 7777"')]

но без кубиков. Второй пример фактически запускает терминал и ищет команду, но не выполняет netcat «аргумент».

Похоже, это связано с тем, что при использовании --command мой аргумент netcat должен быть заключен в кавычки.

Заранее спасибо за помощь

1 Ответ

0 голосов
/ 06 июля 2018

Посоветовавшись с другом, мы смогли найти решение, которое работает.

В итоге мы поместили всю команду для вызова терминала с netcat в переменную, а затем передали эту переменную в call() следующим образом ...

import os

netcat = 'xfce-terminal --command "nc -nvlp 7777"'
print ("Starting listener on port 7777")
from subprocess import call
call(netcat,shell=True)

Вы заметите, что нам также пришлось использовать shell=True, хотя против него было предупреждение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...