Отключить различия в обработке входа в систему (неинтерактивный, интерактивный и т. Д.)

У меня всегда возникают проблемы с установками RVM и неинтерактивными или интерактивными сеансами оболочки. Если сеанс не является интерактивным, я обычно получаю сообщение об ошибке command not found в различных программах / функциях в цепочке инструментов RVM / Ruby (например, gem, rvm, ruby и т. Д.). Мне известно о трех решениях проблемы:

  • Добавить / удалить несколько строк из .bashrc для каждого пользователя. Изменения зависят от версии Ubuntu
  • . Введите bash --login перед началом работы с RVM, чтобы получить интерактивную оболочку
  • Изменение параметра «Выполнить команду как оболочку входа в систему» ​​в gnome-терминал

Все эти решения не совсем то, что я ищу, потому что у меня есть несколько хостов с разными версиями Ubuntu, а для некоторых приложений описанные выше решения не работают (т.е. демонизированы Chef комплект управления конфигурацией ). Насколько я мог проследить проблему, это основано на том факте, что сценарии оболочки в /etc/profile.d запускаются только в том случае, если пользователь входит в сеанс интерактивной оболочки. Похоже, что это не тот случай, если запускается демонизированный процесс или если я или приложение регистрируемся через ssh.

То, что я в основном ищу, - это способ объединения всех видов сеансов оболочки для выполнения сценариев в /etc/profile.d. В идеале это решение должно работать для всех пользователей, которые могут войти в систему, и для разных версий Ubuntu (используется atm: 10.4, 11.10). Также было бы хорошо, если бы его можно было легко настроить с помощью автоматических сценариев или рецептов шеф-повара.

Как примечание: я не знаю, является ли единственная проблема, с которой я сталкиваюсь, это неиспользуемые сценарии в /etc/profile.d, я знаю, что выполнение bash --login обычно решает мои проблемы.

3
задан 14 March 2012 в 04:03

1 ответ

Ваша проблема заключается в том, что gnome-терминал не использует --login для bash по умолчанию: https://rvm.io/integration/gnome-terminal/

Для сценариев с RVM выберите один из методов, описанных здесь: https://rvm.io/integration/cron/

Более подробная информация о пользовательских rc-файлах здесь: https: // rvm. И.О. / поддержка / вопросы и ответы / # shell_login

0
ответ дан 14 March 2012 в 04:03

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

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