If I invoke Netscape as /usr/bin/netscape (which is a sh wrapper around /usr/lib/netscape-communicator) then I cannot dock the application in WindowMaker, it cannot be saved in a WindowMaker session and I cannot set other properties. If I invoke it directly as /usr/lib/netscape-communicator then everything works as expected. A 'ps' when invoked as /usr/bin/netscape shows two processes: 21654 21559 39 00:39 tty1 00:00:04 /usr/lib/netscape/netscape-commu 21667 21654 0 00:39 tty1 00:00:00 [netscape <defunct>] I suspect it is related to the <defunct> process. Could it be because when the wrapper invokes the real executable it does not 'exec' it?
The defunct process is actually either A) a dns helper b) a previous dead netscape process It doesn't really have anything to do with the wrapper.
How do you explain then the fact that the <defunct> process shows up *ONLY* when starting netscape through the wrapper? I just tried it again, I started Netscape directly and actively used it for a while to rule out the DNS process, after using it for about 15 min. there is still no <defunct> process. I quit, checked ps again, no sign of any running Netscape at all, then started Netscape using the wrapper, the <defunct> process showed up right away.
Hm, this appears to be a bug in WindowMaker's docking; it's expecting the PID that it launched to stay running, but since the shell script actually executes netscape, it's not being watched correctly.
But the shell script 'exec's netscape. hmm.
I dont think that this can be called a bug in WindowMaker. What possible behaviour could it have than to wait on the process? Should it wait on the process's children; which one?