Supervisor is a system feature which helps you have full control over processes in your application or project. Though you can try to control all processes yourself with scripts. That becomes hard when you neither have root access or control over failed processes for example. Here is where Supervisor comes in handy. It is meant to start on boot as any other program. And since it is meant for more localised use it will spawn its own subprocesses which it will have full view and control over. Meaning it can know exactly how and when a subprocess crashes and then restart it, for example. Most notably it can be of great use with cron queue control in applications like Laravel.

For more detailed information on how Supervisor works and how you can use it properly, check out their official documentation.