Currently initLicode .sh script will only bring the licode node process up.
But it won’t monitor (up & running?) those node process. @Suggestion - Better we can come up with monitoring scripts.
To overcome this, we have a python script integrated to upstart, which monitor and ensures licode service is always up & running.
NOTE: Upstart is a linux monitoring utility.
Please find our current monitoring flow:
Python script - Accepts 2 arguments - start/stop
Python script - start - executes initLicode .sh script (It stores pid’s of all licode node process)
In a infinite loop, It fetches current pid’s of licode node process and matches with stored values.
If there is a mismatch/pid doesn’t exists (even for 1 node process) , it will kill all the licode node process & executes the start up flow again.
Python script - stop - will kill all the licode node process (This is issued through upstart command)
We are thinking to revamp our current approach for better solution.
Our new Approach:
Replacing initLicode .sh script with 3 upstart configurations for all licode process - nuve, erizoController, erizoAgent
Upstart will bring those node process up and monitors. (It wont follow any sequence - all are independent)
NOTE: In case, if one process is down, it will just bring that specific one up.
Is this fine?
Can you please guide us, which way is the ideal way?
Is there any dependency between licode node process - nuve, erizoController & erizoAgent?
If erizoAgent is down, is it enough to start only the erizoAgent process (or) do we need to kill all and start all again?
Is there any sequence that we need to follow while bringing up the licode node process - nuve, erizoController, erizoAgent?
If any better solutions are already available, please share here.
Thanks & Regards,