dscl не работает изнутри подключенного экрана - PullRequest
0 голосов
/ 21 июля 2010

Я на Mac OS X 10.5.8. Я не совсем уверен, когда именно это начало происходить, но я обнаружил, что при повторном подключении к сеансу экрана, который был запущен из сеанса ssh, все, что зависит от dscl (службы каталогов) или базовый компонент getent, не выполняется. *

Если я запускаю сеанс на этой машине в Терминале, все работает. Только удаленно запущенные сеансы экрана имеют проблемы при повторном подключении.

$ dscl . -list /Users
>> works

$ screen
$ dscl . -list /Users
>> works

[detached]

$ dscl . -list /Users
>> works

$ screen -x
$ dscl . -list /Users
Operation failed with error: eServerNotRunning

Также не удалось:

$ whoami
504

Я перезагружался, отлаживал и гуглял уже около 6 часов безуспешно.

Это действительно больно, так как влияет на множество приложений (ssh, git, rake и т. Д.).

Мне любопытно, влияет ли это на кого-то еще или кто-нибудь знает, как это исправить.

1 Ответ

2 голосов
/ 29 мая 2011

Вот пример из двух учетных записей на одном компьютере (ОС 10.5.8).Не могу проверить это в то время как на SSH, извините.Рассмотрим:

1st account = one
2nd account = two

Предположим, что вы вошли в систему как «один»:

one$ screen
one$ dscl . -list /Users >> works

Теперь, когда вы вошли в систему как «два»:

two$ su - one
Password:

one$ script /dev/null

Сценарий запущен, выходной файлis / dev / null

bash-3.2$ screen -x
bash-3.2$ dscl . -list /Users >> works

Вот и все;)

Если любопытно: Stackoverflow: почему перенаправление 'script' на / dev / null / позволяет 'screen' работатьв то время как подан в качестве другого пользователя?

...