dscl не работает изнутри заново прикрепленного экрана

Я на 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 ответ

Вот пример из двух учетных записей на одном компьютере (ОС 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

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

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

Это оно;)

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

Другие вопросы по тегам