У меня есть 64-битные системы Debian Squeeze, на которых установлена более старая 32-битная версия SGE execd.Когда я запускаю uname -m
в командной строке, я получаю то, что ожидал: x86_64
.Но когда я запускаю uname -m
внутри сценария SGE на том же хосте, вывод будет i686
.Это нарушает все, что зависит от правильного прочтения uname -m
.
. Я могу обойти эту проблему, поэтому мой вопрос скорее академический, чем практический.Я загрузил исходный код uname, но не смог найти, откуда он берет данные об архитектуре машины.Я предполагаю, что эта проблема возникает из-за того, что uname -m
запускается 32-битным родительским процессом вместо 64-битного родительского процесса.Поэтому мой вопрос - верно ли это предположение, и если да, то почему на uname влияет архитектура процесса, который его выполняет?