Использование screencapture при удаленном входе в систему безголового Mac через ssh

6

Я пытаюсь использовать screencapture с терминала, когда залогинен ssh, к макинтошу, к которому не прикреплен экран. Я могу доля экрана к машине, поэтому я хотел бы захватить тот же дисплей.

Однако, когда я пытаюсь это сделать, я не получаю файл изображения.

Вот что я попробовал ...

screencapture -tpng /Users/slomojo/Desktop/image.png

а также...

sudo screencapture -tpng /Users/slomojo/Desktop/image.png

и наконец,

sudo launchtl bsexec $(ps -ax | grep loginwindow.app | awk '{print $1}' | head -1) /usr/sbin/screencapture -tpng /Users/slomojo/Desktop/image.png

Ничего из этого не работает loginwindow.app и прикрепление screencapture обработайте это как предложено man-страницей OS X.)

Обновить

К вашему сведению я использую OS X 10.6.8.

Дополнительное обновление.

Я не упомянул, что к машине не подключен экран (обычно я подключаюсь к нему через VNC / Screen Sharing). Я перепрыгнул на другую машину в этой сети, и команда работает нормально (конечно, я думаю!)

Я должен также упомянуть, что, поскольку я вошел в систему на удаленной машине под той же учетной записью, что и локальный сеанс графического интерфейса, первая версия команды работает нормально.

На самом деле, просто следующее без всех вещей launchctl работает нормально:

screencapture -tpng ~/Desktop/image.png

Однако мне все еще нужно выяснить, как снимать экран на безголовом аппарате, т.е. захватить тот же дисплей, который я видел бы через общий доступ к экрану.

Я не уверен на 100%, но я думаю, что совместное использование экрана сеанс может создать / отключить устройство виртуального экрана, когда оно подключено / отключено. Поэтому я постараюсь сделать screencapture когда я смогу запустить сеанс совместного использования экрана одновременно.

Обновление № 2

Я попытался сделать снимок экрана, пока на другой машине был открыт сеанс совместного использования экрана с той же учетной записью пользователя, что и сессия ssh, без кубиков.

Тем не менее, что интересно, я находился в одной комнате со всеми рассматриваемыми коробками, и целевая коробка издавала звук «затвора», когда я запускала снимок экрана удаленно.

Похоже, что на Mac без экрана невозможно захватить экран, без какой-либо серьезной дополнительной работы, вместо этого я удаленно подключусь к VNC.

ocodo
источник
Последний должен работать, если вы измените путь к /usr/sbin/screencapture - твой отсутствует sbin/,
Ingmar Hupp
@Ingmar hupp - Извините, это была опечатка в вопросе, я уже использую /usr/sbin/screencapture,
ocodo
1
Я попробовал это; он работал только тогда, когда пользователь вошел в систему, т.е. он не работал, когда отображался экран входа
Samantha Catania
Пользователь вошел в систему, на самом деле я ssh'ing под тем же именем пользователя, единственная возможная проблема заключается в том, что нет прикрепленного экрана. Я собираюсь по ssh в другую локальную коробку, в которой есть экран, и посмотреть, в этом ли проблема.
ocodo
@Samantha, да, это была проблема, любые идеи, как я могу заставить виртуальный экран (то есть, экран совместного использования экрана) захватывать, документы для захвата экрана довольно тонкие.
ocodo

Ответы:

1

Я не уверен, что это сработает, но стоит попробовать ...

Что вы создаете сценарий Automator, чтобы сделать снимок экрана, а затем запустить его с помощью терминала?

Похоже на то, что описано в этой статье TUAW однако без той части, которая отправляет снимок экрана вам по почте.

TUAW Example

Сохраните скрипт Automator как приложение, введите SSH и запустите open /path/to/the/automator.app

Josh
источник
Я попробую. Кстати, одна вещь, которую я уже попробовал, которую я должен записать здесь: использование osascript отправить Cmd-Shift-3 ярлык захвата экрана, это не сработало.
ocodo