I have 64-bit Debian Squeeze systems that run an older 32-bit version of SGE execd. When I run uname -m
at the command line, I get what I'd expect: x86_64
. But when I run uname -m
inside an SGE script on the same host, the output is i686
. This breaks anything which depends on a correct reading from uname -m
.
I can workaround the problem, so my question is more academic than practical. I downloaded the uname source code but I couldn't find where it was pulling machine architecture data from. I assume this problem comes about because uname -m
is run by a 32-bit parent process instead of a 64-bit parent process. So my question is - is that assumption correct, and if so, why is uname influenced by the architecture of the process which executes it?