What you're missing is that exec abandons the process after it starts it. So it will only wait until the child dies, which should be right after it starts the database :)
I had reservations about this when I wrote it, and I confirmed them:
#!/usr/bin/perl -w
use strict;
use POSIX ":sys_wait_h";
defined (my $pid = fork()) or die "D'oh";
if ( $pid ) {
print "$$ gonna wait...\n";
my $kid;
do {
$kid = waitpid $pid, WNOHANG;
} until ( $kid > 0 );
print "Ok, done waiting\n";
} else {
exec 'sleep 10; echo "Done sleeping\n"';
}
What I had thought it would do was to start the execution of the command and then bail. Well.. it didn't. It waited.
Now go get that dinner.
No dinner for you :)
--------------
"But what of all those sweet words you spoke in private?"
"Oh that's just what we call pillow talk, baby, that's all."
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|