Thank you very much, Ron. I just reconfirmed my expeience also here at work. (I'm using Geoff's (or Ken's) file server just now.) In this case, I got more curious result as follows: This time, I'm doing this all on a terminal. term% xcpusrv -sxcpu .... term% mount -ac /srv/xcpu /mnt/xcpu term% openclone /mnt/xcpu (then on a newly created rio window) term% cat /mnt/xcpu/clone 65537term% <=============here! not 65536! term% ls -l /mnt/xcpu --rw-rw-rw- M 66 ssh ssh 0 Jan 1 1970 /mnt/xcpu/65536 <========= not 65537! --rw-rw-rw- M 66 ssh ssh 0 Jan 1 1970 /mnt/xcpu/clone On the point why only once copy of execution file, I didn't noticed the danger of your example /bin/sh execution. Now, I think why you chose that way. So, in xcpu we should do only batch job, right? On the xsh.c, I still have some problem. Isn't this a program to be used for a cluster environment? In the file, there is a line of dirno[nodeno++] = smprint("/%s/%s/xcpu/%s", base, s, buf); here, I suppose we should name our cluster's cp server by s, such as /mnt/xcpu/"s"/xcpu/"number", right? So, we have only one cpu server, then we should use the xsh command like term% xsh 0 ? Or if we have many cpu server, then xsh 0 1 2 3 4 5 6 7 ? By the way, in your mkfile-plan9 $O.xsh: xsh.$O P9pshell.$O $LD -o $target $prereq $LDFLAGS should be $O.xsh: xsh.$O Plan9shell.$O <============ $LD -o $target $prereq $LDFLAGS , I suppose. Kenji