Ваш друг говорит о бите четности, который вовлечен в некоторые уровни RAID или контрольную сумму данных, записанных в диск?
Если они идут о четности, то RAID1 не имеет бита четности - у Вас есть две копии тех же данных. Должна быть контрольная сумма, выполненная диском для обеспечения то, что было записано в дисковые соответствия, что снизилось провод
RAID5 действительно имеет бит четности. Это означает, что можно потерять диск в наборе RAID и продолжить, как будто ничего не произошло. Однако, должна быть контрольная сумма, выполненная данных, записанных в диск, чтобы гарантировать, что это соответствует тому, что снизилось провод
В этом экземпляре контрольные суммы полностью независимы от RAID, который может или не может быть выполнен с набором дисков
Отредактированный для добавления: Вы упомянули, что переместили от аппаратных средств RAID к программному обеспечению RAID. Предпочтение всегда является аппаратными средствами RAID по программному обеспечению RAID. Если бы может Вы покупать аппаратные средства, требуемые дать уровень RAID, Вы хотите реализовать, я предложил бы, чтобы Вы пошли для этого. Это позволит всем вычислениям блоков четности быть выполненными платой RAID, а не хостом. Поэтому освобождая ресурс на хосте. Существуют несомненно другие преимущества, но они выходят из меня в данный момент
В зависимости от того, как Вы привыкли к рабочему Bash, можно выполнять оболочку входа в систему. Когда Вы работаете screen
, Вы выполняете невход в систему интерактивная оболочка.
Различие находится, в котором запущены скрипты запуска.
/etc/bash.bashrc
затем ~/.bashrc
получены, когда невход в систему интерактивная оболочка запускается
/etc/profile
затем первое, найденное ~/.bash_profile
, ~/.bash_login
, и ~/.profile
получены, когда интерактивная оболочка входа в систему запускается
Это может влиять на Вас.
Я также проверил бы, чтобы видеть если $TERM
отличается.
экран не заменяет удар, он выполняет его, или любая другая оболочка. возможно, это работает csh
, zsh
, или bash
но с различными параметрами.
первая вещь, которую я попробовал бы, состоит в том, чтобы свериться ps
и /proc/<pid>/cmdline
быть уверенным, что это использует ту же оболочку с теми же параметрами как login
делает.
после этого проверить /etc/screenrc
и любой другой файл, упомянутый в man screen
Раздел FILES.
ps
команда, и она показывает, что bash
работает (это - команда PS в экране)... Я получил цвет, работающий (выше) просто заполнения клавишей Tab потребности.
– thornomad
26 March 2010 в 12:37
Благодаря этому сообщению я добавил одну строку в ~ / .screenrc
:
# ~/.screenrc
defshell -bash # dash makes it a login shell
Затем вещи в вашем ~ / .bashrc
, / etc / bashrc
и т. д. должны быть запущены.
Мне нравится, как вы написали свой вопрос, я задавал себе то же самое, и потребовалось некоторое время, чтобы понять это. Мне повезло, что я уже немного знал о вызове оболочки, поэтому решил, что проблема где-то там.
Вот мои выводы. Во-первых, мне лично это интересно, и стоит знать разницу между оболочкой входа и оболочкой без входа. Выполните 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
.
У меня была та же проблема, когда я запускал экран, я терял интересную подсказку цвета 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\]\$ "
Как будто переменная не теряется при вложенном выполнении.
Просто хочу добавить кое-что о "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 нарушит работу других вещей, но я заметил скрипт.
Я использую этот фрагмент в моем .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 там.
Ключевым моментом здесь является «перед любой инициализацией оболочки», так что когда у вас уже есть запущенный сеанс экрана, он уже инициализирован с локалью и другими вещами, и вам не нужно повторять его снова .
$HOME/.screenrc
файл и добавил эту строку к вершине:term xterm-color
и wa la! Цветная подсказка и$TERM
соответствие значений. Однако никакое заполнение клавишей Tab... – thornomad 26 March 2010 в 12:37$TERM
; некоторые вещи включат с xterm, а также xterm-цветом, другие только ищут xterm. Другие вещи имеют другие переключатели. – staticsan 29 March 2010 в 08:02