You can do something like...
Fork.
In the child, detach and exec (some people call for a double-fork).
In the server, store the PID of the child to a file (if needed).
To find out of the process is alive, send signal 0 to the saved ID.
[There isn't really a signal 0 but trying to send on will let you know
if a process with that ID is alive.]

This works fine on systems that support `fork' and signals nicely so,
not windows.

You might be able to glean more interesting tidbits from Proc::Daemon
on CPAN (yes, it's Perl).
There are likely similar libraries for Ruby but I haven't looked (try
RAA/rubyforge as usual...)

Paul