Supervising forking processes
Posted on December 6, 2007, 7:21 pm, by Scott James Remnant, under
Upstart.
quest /tmp# cat test.c
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>
int
main (int argc,
char *argv[])
{
pid_t pid;
pid = fork ();
if (pid > 0)
exit (0);
pid = fork ();
if (pid > 0)
exit (0);
pause ();
exit (0);
}
quest /tmp# gcc -Wall -g -O0 -o test test.c
quest /tmp# cat /etc/event.d/test
wait for daemon
exec /tmp/test
quest /tmp# start test
test (#0) goal changed from stop to start
test (#0) state changed from waiting to starting
event_new: Pending starting event
Handling starting event
event_finished: Finished starting event
test (#0) state changed from starting to pre-start
test (#0) state changed from pre-start to spawned
process_spawn: Spawned main process 6380 for test (#0)
Active test (#0) main process (6380)
test (#0) main process (6380) forked new child 6381
test (#0) main process (6381) forked new child 6382
test (#0) state changed from spawned to post-start
test (#0) state changed from post-start to running
event_new: Pending started event
Handling started event
event_finished: Finished started event
This looks intriguing, but there’s not context. What command/package is this about? Where is this ’start’ command from?
Ok, the obvious question: how does this work?
For those who can’t guess, this is an upstart feature.
Can U give us (poor stick in the mud) a clue ?
What the heck does it do ? How?
[...] Home « Supervising forking processes [...]
Go upstart!
This is incredibly cool!
Can upstart distinguish forks used to daemonize from forks used to execute external helpers? What would ’start postfix’ look like?
This is A-WE-SO-ME, Scott!
[...] celebratory blog post demonstrated that Upstart is now able to supervise processes that fork into the background, as most [...]
[...] forking as before. As I’ve talked about before, Upstart can supervise process that fork, and it will wait for that to happen before [...]
Hello Scott on 6th December 2007, 07:21 pm you wrote this article
I have upstart 0.3.9 here and this feature seams non existent didn’t the feature make it to the release?