Supervisor is a client/server system that can be used on UNIX-like operating systems to control set of processes and handle starting or restarting of these processes if they exit/terminate due to some reason.
Use cases for which supervisor can be employed range from managing a basic application that needs to be kept running to managing elastic-search clusters, or to manage a kafka client or a standalone database instance that needs to be kept up and running.