Подключенные сокеты могут быть переданы дочернему процессу таким образом, поэтому, например, сетевой сервер, принимающий входящие соединения, может передать их обработку другому процессу.
Повсеместный пример см. в исходном коде inetd.
Я предполагаю, что ваш вопрос касается отладки процесса загрузки, то есть проверки того, будет ли новая конфигурация grub работать должным образом, перед перезагрузкой по-настоящему:
Это возможно благодаря виртуализации.
Тем не менее, есть много крайних случаев, если вы просто загружаете свой физический диск, на котором в данный момент работает ваша система, снова в виртуальной машине. Вы должны синхронизировать любую незавершенную запись на диск, очистить кэши, а затем запустить виртуальную машину с строго читаемым -только представлением диска (с )(, возможно, на копии -на -слой записи). Вы также должны полностью отключить сеть -, иначе она загрузит ваши электронные письма и удалит их с вашего сервера внутри виртуальной машины, где эти данные затем будут потеряны при выключении.
И даже в этом случае виртуальная машина может просто выйти из строя, если она использует файловую систему, которая уже используется и модифицируется хостом. Вы можете обойти эту проблему, используя правильный снимок, но обычно вы не можете просто сделать снимок всего диска, а создание снимка одного LV вообще не поможет, поскольку виртуальная машина просто увидит ту же структуру снимка при загрузке.
Поэтому лучше всего, если хост остается бездействующим и не имеет активности файловой системы во время работы виртуальной машины или просто останавливает виртуальную машину после критической фазы загрузки. Поскольку виртуальная машина доступна только для чтения, вы можете просто закрыть ее / убить / нет необходимости в правильном завершении работы внутри виртуальной машины. Таким образом, даже если виртуальная машина выходит из строя, это не имеет большого значения, кроме того, что это, конечно, затрудняет отладку.
Пока вы знаете о разветвлениях, все сводится к простому qemu, в основном:
sync
echo 3 > /proc/sys/vm/drop_caches
qemu -net none -drive file=/dev/disk,readonly
# leave out readonly for a copy-on-write device:
qemu -net none -drive file=/dev/mapper/copy-on-write-disk
(qemu требуется больше параметров для правильной работы, см. любое руководство по qemu для получения более подробной информации -например, если вы используете дистрибутив, такой как Gentoo, который строго оптимизирован для одного типа ЦП, вам также необходимо -cpu host
-, но это больше или меньше суть.)