Hi Team,
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?
Queries:
-
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,
Hemanth