Когда я набираю echo здесь:
skyI@skyI-MP-i1640:~$ echo $XDG_RUNTIME_DIR
/run/user/1000
Он отображает / run / user / 1000
, но когда набирает echo здесь:
root@skyI-MP-i1640:/SLAM/DSO/dso# echo $XDG_RUNTIME_DIR
Он не отображает / run / user / 1000
Почему и как я могу это решить?
У каждого пользователя есть переменные окружения. XDG_RUNTIME_DIR
, скорее всего, не определен в среде пользователя root или перезаписан как пустой.
Чтобы исправить это в вашей текущей оболочке (временно), войдите в систему как root и введите export XDG_RUNTIME_DIR = "/ run / user / 1000 "
Чтобы исправить это каждый раз, когда root входит в систему, вы можете определить его в ~ root / .profile
.
Просто добавьте строку export XDG_RUNTIME_DIR = "/ run / user / 1000"
внизу файла. Затем либо source ~ / .profile
, либо снова выйдите из системы и войдите в систему.
Вы можете проверить, какие переменные среды определены в текущей оболочке, введите env
или конкретную с помощью env | grep XDG_RUNTIME_DIR
решено. Извините, очень простой ответ. Почему: они разные пользователи. У разных пользователей разные файлы .bashrc. Как: Просто экспортируйте вот так, export XDG_RUNTIME_DIR = "/ run / user / 1000"