Kyle R . Burton on Wed, 26 Jun 2002 10:49:13 -0400 |
I'm using IPC::Open3 to exec ssh from a server process. I have a method that starts an ssh 'worker' command on a remote host. The method runs the worker, sends it a simple message to get back a response that indicates that the worker started. The server then goes on to interact with the workers. This works fine when the server starts up. The server monitors the workers, and if one gets disconnected, or terminates, it uses the same function it used a start-up time to restart the worker. The problem is that when the server tries to send the initial status request, by writing to the input handle returned by the open3, it gets a SIGPIPE. The status message never reaches the worker, so it never sends back it's ack - and the server thinks the worker was stillborn so it kills it. This feature is also supposed to be for adding in new workers at run-time, which also encounters a SIGPIPE. It happens both when starting new workers at run-time, as well as when trying to restart a worker that started successfuly when the server originaly started. I've checked on the remote box and the worker process does restart. What I can't figure out is why this works at start-up time, but doesn't work to restart a worker once the server has been up and running. Has anyone come across anything similar before? Thanks, Kyle -- ------------------------------------------------------------------------------ Wisdom and Compassion are inseparable. -- Christmas Humphreys mortis@voicenet.com http://www.voicenet.com/~mortis ------------------------------------------------------------------------------ **Majordomo list services provided by PANIX <URL:http://www.panix.com>** **To Unsubscribe, send "unsubscribe phl" to majordomo@lists.pm.org**
|
|