When I try to run 'dislocate' the child dies and leaves a zombie process while the parent waits for the child to open the first fifo. This must be a bug in the expect library. Here is an example (I tried other commands as well, 'netstat' is just a neat test case) [ppe@zaphod ppe]$ dislocate -debug netstat --inet -c parent: writing pidfile parent: wrote 0#Thu Apr 22 11:45:13 EDT 1999#--inet -c parent: after fork, pid = 1996 parent: after fork, pid = 0 parent: examining pid parent: opening /tmp/disc0.o for write ^Z [1]+ Stopped dislocate -debug netstat --inet -c [ppe@zaphod ppe]$ ps x PID TTY STAT TIME COMMAND ... 1992 p1 T 0:00 expect -- /usr/bin/dislocate -debug netstat --inet -c 1996 ? Z 0:00 (dislocate <zombie>) [ppe@zaphod ppe]$ ls -l /tmp/dis* prw-rw-r-- 1 ppe ppe 0 Apr 22 11:45 /tmp/disc0.i| prw-rw-r-- 1 ppe ppe 0 Apr 22 11:45 /tmp/disc0.o| [ppe@zaphod ppe]$ rpm -q expect tcl tclx expect-5.26-20 tcl-8.0.3-20 tclx-8.0.3-20 Kernel version 2.2.6 ------- Additional Comments From 04/24/99 12:20 ------- 1) The example shown is wrong, the right command is 'dislocate -debug debug.out netstat --inet -c'. I remember that the script did not work without the '-debug' flag. 2) After upgrading to glibc-2.1.1-5, and some other related upgrades the 'dislocate' works now fine.