On Fri, Nov 18, 2011 at 6:16 AM, Geir Hauge <geir.ha...@gmail.com> wrote: > Add ''set -x'' at the start of the function and examine the output to see if > it actually runs touch from PATH.
The strace output is showing that the correct 'touch' is being executed. [pid 6747] execve("/bin/touch", ["touch", "/mnt/array1/.accesstest"], [/* 14 vars */]) = 0 Process 6748 attached Process 13686 suspended [pid 6748] execve("/usr/bin/logger", ["logger", "-s", "-t", "diskmon", "-p", "local0.info", "*** fsaccesstest test /mnt/array"...], [/* 14 vars */]) = 0 Process 13686 resumed Process 6747 detached [pid 13686] --- SIGCHLD (Child exited) @ 0 (0) --- Process 13686 suspended diskmon: *** fsaccesstest test /mnt/array1 failed: status=1. retrying... (1) *** Process 13686 resumed Process 6748 detached --- SIGCHLD (Child exited) @ 0 (0) --- Notice that the child process pid=6747 exits with status 0, but $?=1 after returning from executing touch. This triggers the failure. I just upgrade my bash from version 3.21 to 4.2 and I'm still seeing this problem. I am seeing this failure whether I execute the 'touch' command or the 'stat' command. Both of these are incidentally busybox implementations. ls -al /bin/touch lrwxrwxrwx 1 root root 7 Nov 15 08:07 /bin/touch -> busybox ls -al /bin/stat lrwxrwxrwx 1 root root 7 Nov 15 08:07 /bin/stat -> busybox Are there any bash debugging tools available that I can use to halt on a data breakpoint and examine state? Thanks, Dallas