Открыть / активировать закрытое приложение на удаленной машине через pssh в Mac os10.12.6
Я пытался открыть приложение удаленно, используя приведенную ниже команду, но я получаю сообщение об ошибке
pssh -h node.txt -O StrictHostKeyChecking=no -l mapsadmin -i "open /Applications/FusionX.app"
Ниже ошибка:
Stderr: LSOpenURLsWithRole() failed with error -10810 for the file /Applications/FusionX.app
mapsadmin - это пользователь с привилегиями root, но он все еще не может получить удачу. Пожалуйста, помогите мне в решении этого.
Я пробовал с AppleScript также, но не повезло
pssh -h node.txt -O StrictHostKeyChecking=no -l mapsadmin -i "osascript -e 'tell application \"FusionX\" to activate'"
[1] 16:07:31 [FAILURE] <IP address> Exited with error code 1
Stderr: 30:38: execution error: An error of type -10810 has occurred. (-10810)
Помоги мне в решении этого. Есть ли что-нибудь еще, что нужно включить на удаленной машине, чтобы это произошло?
1 ответ
Я бы предпочел оставить это как комментарий, но это было слишком долго. Тем не менее, я боюсь, что это может быть не полный ответ, так как причины ошибки - множество, но я надеюсь, что это может помочь.
Во-первых, SSH на удаленной машине, используя стандартные ssh
команду (или перейдите к машине физически и откройте терминал). Теперь посмотрим, сможете ли вы запустить приложение оттуда, используя open /Applications/FusionX.app
, Если это выдает ту же ошибку, то посмотрите, можете ли вы запустить настоящий двоичный файл, расположенный в /Applications/FusionX.app/Contents/MacOS
cd /Applications/FusionX.app/Contents/MacOS
./FusionX
(Предполагается, что двоичный файл, расположенный в этой папке, называется FusionX. Если нет, измените строку выше соответственно.)
Если это не запускает приложение, выполните эту команду:
chmod +x ./FusionX
затем попытайтесь снова запустить бинарный файл. Если это работает, выйдите из защищенной оболочки или вернитесь на локальный компьютер и попробуйте запустить pssh
команда снова. Я надеюсь, что это может решить вашу проблему.
Кроме того, вы можете попробовать чистый AppleScript для удаленного запуска приложения с помощью команды, такой как
tell application "FusionX" of machine "eppc://remote_ip_or_hostname" to activate
(Для этого требуется, чтобы " Удаленные события Apple" были включены на удаленном компьютере (в " Системных настройках"> "Общий доступ") и предполагается, что FusionX поддерживает сценарии Apple.)
Очевидно, что ограничением здесь является необходимость указывать эту команду для каждой удаленной машины отдельно, а не с помощью одной параллельной команды, предназначенной для нескольких хостов.