pub(crate) async fn supervise(
    full_id: String,
    path: impl AsRef<OsStr>,
    args: Vec<impl AsRef<OsStr>>,
    command_wrapper: Vec<String>,
    port_allocator: Arc<PortAllocator>,
    ports: HashMap<String, u16>,
    suppress_output: bool,
    port_metadata_file_location: PathBuf
)