Мне нужно запустить скрипт monkeyrunner на удаленной машине. Я использую python для его автоматизации и RPyC, чтобы я мог подключаться к другим машинам, все работает в CentOS.
ниже написана команда, которую я использовал:
импорт rpyc
подпроцесс импорта
соединение = rpyc.classic.connect("192.XXX.XXX.XXX",XXXXX)
conn.execute ("напечатать "Привет"")
subprocess.Popen("/opt/android-sdk/tools/monkeyrunner -v ВСЕ
/opt/android-sdk/tools/MYSCRIPT.py", оболочка = True)
и это результат:
не удается открыть указанный файл сценария
Использование: monkeyrunner [опция] script_file
-s IP-адрес MonkeyServer
-p TCP-порт MonkeyServer
-v Уровень ведения журнала MonkeyServer
И тогда я понял, что если вы используете приведенную ниже команду, она запустит команду на вашем компьютере. (пример: команда внутри Popen — «ls», результат, который она вам даст, — это список файлов и каталогов в текущем каталоге LOCALHOST), следовательно, команда неверна.
subprocess.Popen("/opt/android-sdk/tools/monkeyrunner -v ВСЕ
/opt/android-sdk/tools/MYSCRIPT.py", оболочка = True)
и поэтому я заменил код на этот
conn.modules.subprocess.Popen("/opt/android-sdk/tools/monkeyrunner -v ВСЕ
/opt/android-sdk/tools/MYSCRIPT.py", оболочка = True)
И дайте мне это сообщение об ошибке
======= Удаленная трассировка ======= Обратная трассировка (последний последний вызов): Файл "/usr/lib/python2.4/site-packages/rpyc-3.2.2-py2.4.egg /rpyc/core/protocol.py", строка 300, в _dispatch_request res = self._HANDLERS[handler](self, *args) File "/usr/lib/python2.4/site-packages/rpyc-3.2.2- py2.4.egg/rpyc/core/protocol.py", строка 532, в _handle_call return self._local_objects[oid](*args, **dict(kwargs)) File "/usr/lib/python2.4/subprocess .py", строка 542, в init errread, errwrite) Файл "/usr/lib/python2.4/subprocess.py", строка 975, в _execute_child поднять child_exception OSError: [Errno 2] Нет такой файл или каталог
======= Локальное исключение ======== Трассировка (последний последний вызов): Файл "", строка 1, в ? Файл "/usr/lib/python2.4/site-packages/rpyc-3.2.2-py2.4.egg/rpyc/core/netref.py", строка 196, в call return syncreq (_self, consts.HANDLE_CALL, args, kwargs) Файл "/usr/lib/python2.4/site-packages/rpyc-3.2.2-py2.4.egg/rpyc/core/netref.py", строка 71, в syncreq return conn.sync_request(handler, oid, *args) File "/usr/lib/python2.4/site-packages/rpyc-3.2.2-py2.4.egg/rpyc/core/protocol.py", строка 438, в sync_request поднять объект OSError: [Errno 2] Нет такого файла или каталога
Я думаю, что он не может запустить файл, потому что у меня нет доступа администратора (поскольку я не указал имя пользователя и пароль удаленной машины)?
Помощь!