Поставить на паузу nmap/masscan запущенные в python скрипте?
Добрый день,
Есть скрипт Python3 в котором используется библиотека HUG реализующая REST API, по post запросу в скрипте запускаются поочередно masscan и nmap после отдают свой результат клиенту, использую функцию os.system() все работает отлично, но стала задача поставить на паузу процесс(nmap/masscan) который уже выполняется. Например если masscan или nmap уже в процессе работы то нужно сохранить результат их работы и дальше начать с того же места, знаю что у обеих есть опция --resume и они умеют это делать, но как заставить их остановится и сохранить результат своей работы? Насколько я понимаю python-у требуется отправить CTR + Z
Вопрос : Есть какой то простой способ в Python сделать snapshot всего происходящего?
И дальше при необходимости восстановить работу скрипта с него(как в виртуалках)?
Какое самое простое решение для данной задачи?
nmap: сохраняете его вывод в файл через ключ -oN и прерываете выполнение когда хотите. Для возобновления, используете --resume с именем файла. Возможно будет удобнее вызывать процесс через subprocess, чтобы было удобнее его останавливать через terminate.
Дело в том что на вашем скриншоте вы запускаете Nmap и сохраняете результат после его выполнения в файл, но если прервать выполнение nmap не дождавшись его завершения то результат не сохранится. Тестил на версии 7.7
JavaUser Spring, да. Вы правы, файл по какой-то причине не записывается при прерывании. Но то что он пишет в файл совпадает с stdout. Т.е. вам достаточно записать stdout в файл
Дмитрий Шицков, Еще рад приветствую... Могу попросить о возможности реализовать данное действие совместно? Естественно не бесплатно, я вам отправил письмо, я физически уже просто не могу)