Когда я запускаю xterm, мой .bashrc не получается Появлен

sudo strace -f -e trace=process service nginx status 2>&1 | grep systemctl

-121--242852-

Тиаго Штюрмер Дайткс только что сослался на обходной путь в отчете об ошибке .

Я подтверждаю, что это сработало для меня. Спасибо Тьяго!

-121--242850-

Инструкция имеет точку с запятой, где она должна иметь двоеточие:

export PATH=$PATH:$HADOOP_HOME/bin;$HADOOP_HOME/sbin

против

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

точка с запятой ; разделяет операторы , а не части PATH .

При первом запуске команды она добавила $ HADOOP _ HOME/bin в PATH (что нормально). Но он не добавил $ HADOOP _ HOME/sbin . Вы можете просто отредактировать команду в bash и повторно отправить ее - получить две копии $ HADOOP _ HOME/bin , который работает , но расточителен.

1
24.11.2018, 10:54
2 ответа

В вашем файле ~/.Xresourcesесть строка

xterm*loginShell: true

Это заставит XTerm запустить сеанс оболочки как оболочку входа в систему. Когда bashзапускается как оболочка входа в систему, она читает ваш файл ~/.bash_profile, но не читает~/.bashrc(этот файл читается интерактивными сеансами без -входа в систему ), если только ~/.bash_profileне читает его с source] явно.

У вас есть два варианта:

  1. Удалите строку из ~/.Xresources, указывающую, что оболочка должна быть оболочкой входа в систему. Скорее всего, вам придется выйти из сеанса графического входа в систему, чтобы этот файл был повторно -прочитан и изменения вступили в силу.
  2. Сделайте свой файл ~/.bash_profilesourceсвоим файлом ~/.bashrc, убедившись, что ваш файл ~/.bashrcне является источником файла ~/.bash_profileв то же время (, что может создать бесконечный цикл ). ].

    Пример того, как вы можете это сделать (это будет добавлено в файл ~/.bash_profile):

    if [ -o interactive ] && [ -f ~/.bashrc ]; then
       source ~/.bashrc
    fi
    

    Возможно, вам придется сделать что-то подобное для /etc/profileи /etc/bash.bashrcили где-либо еще в вашей системе bashrc, если это еще не сделано вашей системой. Однако, поскольку /etc/profileчитается всеми Борнами -как оболочки, а не только bash, его необходимо немного адаптировать:

    if [ -n "$BASH" ] &&
       [ "$BASH" != /bin/sh ] &&
       [ -o interactive ] &&
       [ ! -o posix ] &&
       [ -f /etc/bash.bashrc ]
    then
      source /etc/bash.bashrc
    fi
    
5
27.01.2020, 23:18

Я бы сделал следующее:

  • Убедитесь, что.bashrc находится в вашей домашней папке
  • Убедитесь, что он принадлежит вам

    xterm -e bash --rcfile /home/someuser/.bashrc
    
0
27.01.2020, 23:18

Теги

Похожие вопросы