Большинство процессов в гостевых машинах будет в состоянии сна почти всем временем. Можно проверить, насколько процессы спят с командой PS. На современных гипервизорах дублирующиеся страницы памяти совместно используются виртуальными машинами с техникой под названием KSM на Linux. VMware имеет то же самое. Не уверенный в Hyper-V в эти дни.
В целом, виртуализация имеет наверху, но не так, как Вы думаете.
Вы можете ожидать, что это можно сделать, используя
Defaults env_keep += "LD_LIBRARY_PATH FRED"
, но быстрый тест на CentOS 6.2
с Sudo версии 1.7.4p5
не проходит LD_LIBRARY_PATH
, но проходит FRED
. На странице руководства sudoers есть это
Note that the dynamic linker on most operating systems will remove variables that can control dynamic linking from the environment of setuid executables, including sudo. Depending on the operating system this may include _RLD, DYLD_, LD_, LDR_, LIBPATH, SHLIB_PATH, and others. These type of variables are removed from the environment before sudo even begins execution and, as such, it is not possible for sudo to preserve them
. Похоже, система удаляет LD_LIBRARY_PATH
из среды до того, как sudo его увидит.
Чтобы заставить это работать, мне пришлось сделать следующее:
Значения по умолчанию env_keep + = "LD_LIBRARY_PATH"
в sudoers alias sudo = 'sudo LD_LIBRARY_PATH = / mypath'
Теперь любая команда, которую я вызываю с помощью sudo, будет иметь настройку переменной.
Похоже, вы еще не выполнили экспорт LD_LIBRARY_PATH
. Это сделает переменную окружения доступной для всех и решит эту проблему.
В качестве альтернативы, если вам нужна надежная постоянная переменная среды,
Это происходит не только с LD_LIBRARY_PATH, но и с некоторыми другими переменными среды, которые могут влиять на вашу среду сборки. В моем случае sudo изменился на:
sudo -HE env PATH=${PATH} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} PYTHONPATH=${PYTHONPATH} my_command