Конечная причина в том, что Xubuntu явно не ожидал, что кто-либо выполнит графический вход в систему для учетной записи root, поэтому его .profile
файл по умолчанию в этой ситуации выдает ложную ошибку. Если вы посмотрите на последнюю строку /root/.profile, вы найдете:
mesg n || true
Это сделано для того, чтобы такие программы не talk
могли писать на вашу консоль. Это особенно важно, если вы вошли в систему с правами root с помощью текстового сеанса (su из xterm, ssh и т. Д.), Поскольку эти сообщения могут загромождать экран.
|| true
Бит, чтобы предотвратить сценарий оболочки от завершения, если MESG должен терпеть неудачу (как это не удается здесь), но это не мешает ему генерировать сообщения об ошибках, когда он выходит из строя, который вы видите.
Причина проблемы в том, что, помещая строку в .profile, она запускается каждый раз, когда выполняется bash, даже когда она запускается из сеанса без tty-устройства (как во время самых ранних частей графического входа в систему), поэтому вы видите Ошибка. Это безвредно, потому mesg
что в любом случае было бы бессмысленно запускаться из сеанса без TTY, но рабочий стол этого не знает и отображает сообщение.
Одно из решений (как сказано в комментарии к вопросу, на который вы ссылались ) состоит в том, чтобы изменить строку, чтобы она не пыталась звонить, mesg
когда нет TTY:
tty -s && mesg n || true
Это говорит о том, что он не должен пытаться звонить, mesg
когда нет TTY, но все равно будет звонить, когда есть TTY (например, из входа SSH).