Могу ли я переместить папку / var без перезагрузки?

Я запускаю безголовый сервер Ubuntu с USB-диска, и чтобы минимизировать количество операций записи, я хочу переместить папку / var на другой диск.

Проблема в том, что все остальные накопители зашифрованы и становятся доступными только хорошо после завершения загрузки . Я мог бы, конечно, просто mount /dev/mapped/drive /var, но тогда я уверен, что многие процессы будут сбиты с толку из-за того, почему их старые дескрипторы открытых файлов не могут общаться со своими недавно созданными.

Есть ли способ перезапустить всю систему без перезагрузки, или мне нужно попытаться выяснить, какие процессы запущены, и /etc/init.d/* перезапустить их вручную?

2
задан 4 October 2011 в 12:59

1 ответ

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

/var также может содержать базу данных, такую ​​как mysql, различные файлы журналов и кэши. Возможно, вам удастся выполнить lsof | grep /var/ и отправить остановку связанным службам, и большинство из них могут даже пережить mv /var /varold && mkdir /var && mount -t auto /dev/whatever /var && cp -Rp /varold /var, потому что они просто будут придерживаться своих старых файлов pid, но это может привести к краху.

Другой подход заключается в том, чтобы войти на сервер с учетной записью, отличной от root, и выполнить killall -SIGSTOP -u root (или любого другого специального пользователя, с которым они могут работать), выполнить ваши изменения и возобновить процессы с помощью killall -SIGCONT -u root.

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

0
ответ дан 4 October 2011 в 12:59

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

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