в консоли python следующее утверждение прекрасно работает (я думаю, использование eval не очень хорошо, но в данном случае это просто для целей тестирования и будет заменено на правильный анализ)
$ python
>>> import subprocess
>>> r = subprocess.Popen(['/pathto/plugin1.rb'], stdout=subprocess.PIPE, close_fds=True).communicate()[0]
>>> data = eval(r)
>>> data
{'test': 1}
когда я конвертирую это в плагин Serverdensity , однако он продолжает сбой при запуске агента. я смог сузить его до строки подпроцесса, но не мог понять почему. перехват исключений тоже не сработал.
вот как выглядит плагин:
class plugin1:
def run(self):
r = subprocess.Popen(['/pathto/plugin1.rb'], stdout=subprocess.PIPE, close_fds=True).communicate()[0]
data = eval(r)
return data
Я новичок в работе с python и не могу понять, почему это не сработает. Большое спасибо за идеи:)