1 | |
Взаимодействие процессов18.11.2015, 08:25. Показов 1402. Ответов 1
Метки нет (Все метки)
Всем привет. Запаситесь терпением, ибо описывать проблему я буду долго
Итак, что требуется, в общем. Есть программа на Питоне. Она может быть запущена с ключом на открытие файла, примерно так: Код
python.exe run.py file_to_open Надо сделать так, чтобы при таком запуске программа смотрела, нет ли уже запущенного ранее экземпляра программы, и, если есть - передавала имя файла на открытие в тот экземпляр (пусть он его откроет), а сама завершалась. Недолго думая, я наваял простенький сервер на сокетах, который слушает порт в первом экземпляре, а в последующих - передаёт туда имя файла на открытие, и всё работало отлично. НО! Нарисовались какие-то уроды из отдела безопасности, которые заявили, что порты открывать и слушать нельзя! Это, типа, небезопасно, ага-ага. Отсюда вопрос. Как сделать то же самое, но без сокетов? В процессе поиска я набрёл на т. н. каналы. Можно получить Connection-ы через multiprocessing.Pipe(). Но непонятно, как в другом экземпляре программы (т. е. в другом процессе) получить Connection по его id. В первом экземпляре я могу его id хоть в файл сохранить, во втором - считать, а вот как открыть по id? Именованные каналы, я так понял, работают только под Unix. Есть совсем тупой вариант - через файлы, но не хотелось бы возиться с ними, как-то это совсем уж тупо. В общем, буду рад любым подсказкам.
0
|
18.11.2015, 08:25 | |
Ответы с готовыми решениями:
1
Взаимодействие процессов Взаимодействие процессов Взаимодействие процессов Взаимодействие процессов - теория |
21 / 34 / 14
Регистрация: 23.07.2014
Сообщений: 148
|
|
20.11.2015, 04:05 | 2 |
Нормальный вариант с файлами.
Читай изменения pyinotify
0
|
20.11.2015, 04:05 | |
20.11.2015, 04:05 | |
Помогаю со студенческими работами здесь
2
Взаимодействие двух процессов Взаимодействие процессов. Сигналы Взаимодействие процессов / WinAPI Взаимодействие процессов в Windows Программирование: взаимодействие userspace процессов Как организовать взаимодействие процессов ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |