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" работать, пока подан в качестве другого пользователя?