<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def _resin_supervisor_restart():
 """ Execute a container restart by requesting it from the supervisor. Note that failures here are returned but most likely will not be sent back to the caller, since this is run in a separate workthread. If the system is not responding, look for these log messages. """

    supervisor = os.environ.get('RESIN_SUPERVISOR_ADDRESS',
                                'http://127.0.0.1:48484')
    restart_url = supervisor + '/v1/restart'
    api = os.environ.get('RESIN_SUPERVISOR_API_KEY', 'unknown')
    app_id = os.environ.get('RESIN_APP_ID', 'unknown')
    async with aiohttp.ClientSession() as session:
        async with session.post(restart_url,
                                params={'apikey': api},
                                json={'appId': app_id,
                                      'force': True}) as resp:
            body = await resp.read()
            if resp.status != 202:
                log.error("Could not shut down: {}: {}"
                          .format(resp.status, body))