Мой /etc/cgconfig.conf
файл состоит из
mount {
cpuset = /cgroup/cpuset;
cpu = /cgroup/cpu;
cpuacct = /cgroup/cpuacct;
memory = /cgroup/memory;
devices = /cgroup/devices;
freezer = /cgroup/freezer;
net_cls = /cgroup/net_cls;
blkio = /cgroup/blkio;
}
# make sure this cgroup cannot run more than 100%
group proc1 {
perm {
task {
uid = jmichael;
gid = hpcfadmins;
} admin {
uid = jmichael;
gid = hpcfadmins;
}
}
cpu {
cpu.cfs_quota_us = "1000000";
cpu.cfs_period_us = "1000000";
}
}
group proc2 {
cpu {
cpu.cfs_quota_us = "2000000";
cpu.cfs_period_us = "1000000";
}
}
и я заметил, что при запуске cgexec -g cpu:proc1 myCode.sh
(который содержит двоичный файл, скомпилированный с определенной версией gcc
), который жаловался на библиотеки. После дальнейшего расследования я обнаружил, что env
дает мне другие результаты, чем cgexec -g cpu:proc1 env
. В частности, LD_LIBRARY_PATH
не включается в вывод cgexec
версия.
Как я могу получить cgexec
унаследовать мой LD_LIBRARY_PATH
?
В качестве простого теста обратите внимание на результаты следующих команд:
$ env | grep 'LD_LIBRARY_PATH' | sed 's/=.*//'
LD_LIBRARY_PATH
$ cgexec -g cpu:proc1 env | grep 'LD_LIBRARY_PATH' | sed 's/=.*//'
$