Как я прошу экранировать для поведения как стандартная оболочка удара?

Ваш друг говорит о бите четности, который вовлечен в некоторые уровни RAID или контрольную сумму данных, записанных в диск?

Если они идут о четности, то RAID1 не имеет бита четности - у Вас есть две копии тех же данных. Должна быть контрольная сумма, выполненная диском для обеспечения то, что было записано в дисковые соответствия, что снизилось провод

RAID5 действительно имеет бит четности. Это означает, что можно потерять диск в наборе RAID и продолжить, как будто ничего не произошло. Однако, должна быть контрольная сумма, выполненная данных, записанных в диск, чтобы гарантировать, что это соответствует тому, что снизилось провод

В этом экземпляре контрольные суммы полностью независимы от RAID, который может или не может быть выполнен с набором дисков

Отредактированный для добавления: Вы упомянули, что переместили от аппаратных средств RAID к программному обеспечению RAID. Предпочтение всегда является аппаратными средствами RAID по программному обеспечению RAID. Если бы может Вы покупать аппаратные средства, требуемые дать уровень RAID, Вы хотите реализовать, я предложил бы, чтобы Вы пошли для этого. Это позволит всем вычислениям блоков четности быть выполненными платой RAID, а не хостом. Поэтому освобождая ресурс на хосте. Существуют несомненно другие преимущества, но они выходят из меня в данный момент

37
задан 26 March 2010 в 12:28
8 ответов

экранируйте изменяет тип термина на screen. Можно сделать одну из двух вещей:

  1. измените термин настройки в Вашем .screenrc
  2. измените Ваш .bashrc файлы ищут TERM=screen а также TERM=xterm
13
ответ дан 28 November 2019 в 19:48
  • 1
    Спасибо! Я создал $HOME/.screenrc файл и добавил эту строку к вершине: term xterm-color и wa la! Цветная подсказка и $TERM соответствие значений. Однако никакое заполнение клавишей Tab... –  thornomad 26 March 2010 в 12:37
  • 2
    Необходимо вырыть в то, что включает заполнение клавишей Tab. Сценарии конфигурации оболочки по умолчанию не совсем последовательны о том, что они включают на основе $TERM; некоторые вещи включат с xterm, а также xterm-цветом, другие только ищут xterm. Другие вещи имеют другие переключатели. –  staticsan 29 March 2010 в 08:02

В зависимости от того, как Вы привыкли к рабочему Bash, можно выполнять оболочку входа в систему. Когда Вы работаете screen, Вы выполняете невход в систему интерактивная оболочка.

Различие находится, в котором запущены скрипты запуска.

  • /etc/bash.bashrc затем ~/.bashrc получены, когда невход в систему интерактивная оболочка запускается

  • /etc/profile затем первое, найденное ~/.bash_profile, ~/.bash_login, и ~/.profile получены, когда интерактивная оболочка входа в систему запускается

Это может влиять на Вас.

Я также проверил бы, чтобы видеть если $TERM отличается.

9
ответ дан 28 November 2019 в 19:48

экран не заменяет удар, он выполняет его, или любая другая оболочка. возможно, это работает csh, zsh, или bash но с различными параметрами.

первая вещь, которую я попробовал бы, состоит в том, чтобы свериться ps и /proc/<pid>/cmdline быть уверенным, что это использует ту же оболочку с теми же параметрами как login делает.

после этого проверить /etc/screenrc и любой другой файл, упомянутый в man screen Раздел FILES.

2
ответ дан 28 November 2019 в 19:48
  • 1
    Я работал ps команда, и она показывает, что bash работает (это - команда PS в экране)... Я получил цвет, работающий (выше) просто заполнения клавишей Tab потребности. –  thornomad 26 March 2010 в 12:37

Благодаря этому сообщению я добавил одну строку в ~ / .screenrc :

# ~/.screenrc
defshell -bash      # dash makes it a login shell

Затем вещи в вашем ~ / .bashrc , / etc / bashrc и т. д. должны быть запущены.

39
ответ дан 28 November 2019 в 19:48

Мне нравится, как вы написали свой вопрос, я задавал себе то же самое, и потребовалось некоторое время, чтобы понять это. Мне повезло, что я уже немного знал о вызове оболочки, поэтому решил, что проблема где-то там.

Вот мои выводы. Во-первых, мне лично это интересно, и стоит знать разницу между оболочкой входа и оболочкой без входа. Выполните man $ SHELL и найдите раздел ПРИЗЫВ, чтобы узнать больше об этом.

Вы можете спросить свой текущий экземпляр оболочки, является ли он оболочкой входа или оболочки, не входящей в систему, введя shopt login_shell в своем приглашении. Обратите внимание, что это обычно параметр только для чтения.

В моих системах Debian экран всегда по умолчанию используется оболочками без входа в систему.

После поиска в Интернете и чтения man $ SHELL , я протестировал несколько вещей, и у меня сработали следующие два подхода. В ~ / .screenrc добавьте / обновите строку следующим образом:

shell -$SHELL

Если это не сработает, И вы используете bash , вы также можете попробовать, как указано в Шеймус :

defshell -bash

Как упоминалось, вы можете проверить, является ли ваш текущий экземпляр оболочки оболочкой входа в систему, введя в командной строке shopt login_shell .

В моих системах Debian экран всегда по умолчанию использовался с оболочками без входа в систему.

После поиска в Интернете и чтения man $ SHELL я протестировал несколько вещей. и следующие два подхода сработали для меня. В ~ / .screenrc добавьте / обновите строку следующим образом:

shell -$SHELL

Если это не сработает, И вы используете bash , вы также можете попробовать, как указано в Шеймус :

defshell -bash

Как упоминалось, вы можете проверить, является ли ваш текущий экземпляр оболочки оболочкой входа в систему, введя в командной строке shopt login_shell .

В моих системах Debian экран всегда по умолчанию использовался с оболочками без входа в систему.

После поиска в Интернете и чтения man $ SHELL я протестировал несколько вещей. и следующие два подхода сработали для меня. В ~ / .screenrc добавьте / обновите строку следующим образом:

shell -$SHELL

Если это не сработает, И вы используете bash , вы также можете попробовать, как указано в Шеймус :

defshell -bash

Как упоминалось, вы можете проверить, является ли ваш текущий экземпляр оболочки оболочкой входа в систему, введя в командной строке shopt login_shell .

11
ответ дан 28 November 2019 в 19:48

У меня была та же проблема, когда я запускал экран, я терял интересную подсказку цвета PS1, которую ловко нашел: P.

Проблема в том, что я запускал его вот так в ~ / .bash_profile

PS1="\[\033[35m\]\t\[\033[m\]-\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "

Это означает, что когда screen работал с bash_profile, PS1 не переносится.

Исправить легко: добавьте экспорт в оператор PS1 в ~. / bash_profile должен выглядеть следующим образом:

export PS1="\[\033[35m\]\t\[\033[m\]-\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "

Как будто переменная не теряется при вложенном выполнении.

2
ответ дан 28 November 2019 в 19:48

Просто хочу добавить кое-что о "defshell -bash" (которое я только что понял после нескольких месяцев ломания головы). Когда вы это делаете, дочерняя оболочка, запускаемая screen, имеет для $ SHELL значение «bash», а не «/ bin / bash», как обычно. Если вы затем запустите "скрипт" внутри сеанса экрана, вы получите:

$ script
Script started, file is typescript
script: failed to execute bash: No such file or directory

Или, по крайней мере, это то, что происходит в моем компьютере с Ubuntu 14.04. Обходной путь, который я использовал, - запустить $ SHELL = / bin / bash script . Я могу представить, что неправильная установка $ SHELL нарушит работу других вещей, но я заметил скрипт.

1
ответ дан 28 November 2019 в 19:48

Я использую этот фрагмент в моем .profile до начала любой инициализации оболочки: какой экран> / dev / null 2> & 1 && { экран -q -ls если [$? -gt 10]; тогда read -p "$ (tput setaf 2) Обнаружена работающая сессия ЭКРАНА, прикрепить? $ (tput sgr0) [Y / n]" y> & 2 если ["$ {y: -y}" = "y" -o "$ y" = "Y"]; тогда экран -aDR && выйти из системы фи еще echo "$ (tput setaf 3) Нет запущенных сеансов ЭКРАНА. $ (tput sgr0)"> & 2 фи }

Затем, если сеанс экрана не запущен, я ... ну, я не попадаю в стандартную подсказку оболочки. Есть еще одно приглашение для пароля sudo (так как в 99% случаев я вхожу в систему для администрирования сервера), и если я планирую выполнить длительную задачу, я отменяю вход в систему sudo, запускаю экран вручную в моем пользователе session и sudo там.

Ключевым моментом здесь является «перед любой инициализацией оболочки», так что когда у вас уже есть запущенный сеанс экрана, он уже инициализирован с локалью и другими вещами, и вам не нужно повторять его снова .

0
ответ дан 28 November 2019 в 19:48

Теги

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