В то время как можно использовать dd для копирования диска как этот, делание так имеет много недостатков:
Используя программу обработки изображений как Ghost4Linux, partclone, или clonezilla, по крайней мере, заботится о номерах 2 и 3. Можно также просто отформатировать новый диск, смонтировать его и скопировать все файлы с cp -ax
(как корень), и затем переустанавливают загрузчик на новом диске. Этот метод не страдает ни от одного из вышеупомянутых недостатков.
Нет я не думаю, что это возможно. И при этом это не должно быть. Это в основном составило бы способ ввести код в уже запущенную и активную оболочку и изложит значительную угрозу нарушения безопасности.
Много процессов демона разработаны, чтобы сделать это. Типичный путь состоял бы в том, чтобы отправить их ПОНУКАТЬ (зависание) сигнал, который заставляет их повторно запускаться после перечитывания их файлов конфигурации. Вы могли инициировать это с чем-то как:
pkill -HUP daemon_name
Однако при выполнении этого на ударе, удар просто выключается. Это не демон, и система не имеет его, ведут себя как один.
Длинное и за исключением него - то, что Вы, вероятно, не будете продолжать вносить изменения в свой bashrc так часто со временем, и это не будет большая часть проблемы. При внесении изменений необходимо будет просто снабдить файл при необходимости в изменениях в выполнении оболочек.
Нет ничего встроенного в удар. Вы могли сказать этому, возможно, перезагружать .bashrc
каждый раз это отображает подсказку, через PROMPT_COMMAND
.
## Create a timestamp file, dated like the .bashrc that was read.
## There is a small race condition: if .bashrc is modified as the shell is
## just starting, before getting to this line, this instance won't detect
## that modification.
bashrc_timestamp_file=~/.bashrc-timestamp-$$
touch -r ~/.bashrc "$bashrc_timestamp_file"
## Remove the timestamp file on exit. The timestamp file will be left
## behind on a crash.
trap 'rm "$bashrc_timestamp_file"' EXIT HUP TERM INT QUIT
maybe_reload_bashrc () {
if [[ ~/.bashrc -nt $bashrc_timestamp_file ]]; then
. ~/.bashrc
fi
}
if [[ $PROMPT_COMMAND != *maybe_reload_bashrc* ]]; then
PROMPT_COMMAND="maybe_reload_bashrc
$PROMPT_COMMAND"
fi
Это - большая проблема дополнительные доступы к файлу если это имеет значение. Кроме того, это ставит ограничение Ваш .bashrc
: файл должен быть идемпотентом, т.е. необходимо смочь загрузить его несколько раз без вредных воздействий. Например, в отрывке выше, я забочусь для добавления maybe_reload_bashrc
кому: PROMPT_COMMAND
только если это уже не там.
touch -r ~/.bashrc $bashrc_timestamp_file
после определения источника ~/.bashrc
. Я на самом деле почти записал это, но это не необходимо: это было просто сделано полученным .bashrc
. Файл метки времени обновляется каждый раз, когда .bashrc
загружается, не только на начальной загрузке.
– Gilles 'SO- stop being evil'
19.06.2011, 00:36