У меня проблема с массивной командой внутри chroot. Сама команда инициируется Makefile поэтому ошибка является классическим:Внутри chroot execvp() возвращает слишком длинный список аргументов
make: execvp: /bin/sh: Argument list too long
Я расследование, и я понял, глядя на исходный код сделать, что он создает работу через execvp(), который предоставляется LIBC (I» мы видели, что команда передается как «/ bin/sh» «-c» «... мои аргументы»). Так что я посмотрел LibC источник и в основном это выглядит есть предел определяется ARG_MAX, однако в последнее время он не используется в качестве кода говорит:
/* Legacy value of ARG_MAX. The macro is now not defined since the
actual value varies based on the stack size. */
#define legacy_ARG_MAX 131072
Так думал, что нужно изменить размер стека с помощью :
ulimit -s VALUE
Так что я сравнил значение за пределами chroot, и я установил гораздо большее значение внутри chroot. Однако такой же результат ... У кого-нибудь есть идея? Я не знаю, изучаю ли я неправильное направление или нет. Большое спасибо за любую помощь!
Duplicate? - http://unix.stackexchange.com/questions/120642/what-defines-the-maximum-size-for-a-command-single-argument – Dummy00001
Я не знаю, так ли это, поскольку это может быть связано с тот факт, что он терпит неудачу внутри chroot, и у него есть чувство, что это может быть связано с ним, так как есть определенные ограничения с ним, но я не знаю, что ... – Stan