Comment 0 for bug 1021973

Revision history for this message
Victor Martinez (victored) wrote :

Due to Cerbere's current implementation, it doesn't make sense to restart it after it exits (even if it was signaled, etc.)

This is Cerbere's lifecycle:
1) Register with session manager
2) Read stuff from settings
3) Load processes
4) Enter monitor state (not really, since this is asynchronously tied to each process)

When Cerbere exits, it doesn't kill all the processes it spawned. Instead, these processes are kept alive, and become zombies since no one is watching them. Supposing Cerbere was killed, the following would happen:

1) Cerbere exits. The processes it spawned are still running
2) A new instance of Cerbere starts (thanks gnome-session!)
3) This new instance tries to load the processes again
4) Single-instance processes will crash, since another instance is already running
5) Enter the spawn => crash cycle until the max-crash-count value is reached for every process (UGH, this part sucks!)
6) Cerbere gives up and ends up running without monitoring a single process. So, we have and instance of it running without any purpose.

For the Luna cycle, I would suggest leaving Cerbere as it is, and only changing the respective entries in the .desktop file:

[Desktop File]