ich programmiere zur Zeit einen Discord Bot.
Dieser läuft über einen Raspberry Pi, aber aufgrund diverser Umstände habe ich dort kein Lan, sondern eben nur Wlan.
Da das Wlan bei mir aber öfters ausfällt oder zu schwach wird, stürtzt der Bot hin und wieder ab.
Ist es möglich, den Bot nach Absturz wegen "Keine Verbindung" automatisch neustarten zu lassen?
Also mein Versuch war folgender:
Ein neues Programm, Starter.py mit folgendem Code
Code: Alles auswählen
def Starter():
try:
import Main # Das ist mein Hauptprogramm
except OSError:
print("error wegen Netzwerk")
return Starter()
Starter()
Traceback (most recent call last):
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/discord/gateway.py", line 430, in poll_event
msg = yield from self.recv()
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/websockets/protocol.py", line 319, in recv
raise ConnectionClosed(self.close_code, self.close_reason)
websockets.exceptions.ConnectionClosed: WebSocket connection is closed: no code, no reason.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/discord/client.py", line 448, in connect
yield from self.ws.poll_event()
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/discord/gateway.py", line 435, in poll_event
raise ResumeWebSocket() from e
discord.gateway.ResumeWebSocket
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/aiohttp/connector.py", line 601, in _create_direct_connection
local_addr=self._local_addr)
File "/usr/lib/python3.6/asyncio/base_events.py", line 778, in create_connection
raise exceptions[0]
File "/usr/lib/python3.6/asyncio/base_events.py", line 765, in create_connection
yield from self.sock_connect(sock, address)
File "/usr/lib/python3.6/asyncio/selector_events.py", line 450, in sock_connect
return (yield from fut)
File "/usr/lib/python3.6/asyncio/selector_events.py", line 455, in _sock_connect
sock.connect(address)
OSError: [Errno 101] Network is unreachable
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/aiohttp/connector.py", line 304, in connect
yield from self._create_connection(req)
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/aiohttp/connector.py", line 578, in _create_connection
transport, proto = yield from self._create_direct_connection(req)
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/aiohttp/connector.py", line 624, in _create_direct_connection
(req.host, req.port, exc.strerror)) from exc
aiohttp.errors.ClientOSError: [Errno 101] Can not connect to discordapp.com:443 [Network is unreachable]
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/phobit/PycharmProjects/DiscordSippenBot/Discord/Starter.py", line 6, in Starter
import Main
File "/home/phobit/PycharmProjects/DiscordSippenBot/Discord/Main.py", line 228, in <module>
client.run(SECRETS.TOKEN)
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/discord/client.py", line 519, in run
self.loop.run_until_complete(self.start(*args, **kwargs))
File "/usr/lib/python3.6/asyncio/base_events.py", line 468, in run_until_complete
return future.result()
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/discord/client.py", line 491, in start
yield from self.connect()
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/discord/client.py", line 452, in connect
self.ws = yield from DiscordWebSocket.from_client(self, resume=resume)
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/discord/gateway.py", line 203, in from_client
gateway = yield from client.http.get_gateway()
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/discord/http.py", line 633, in get_gateway
data = yield from self.request(Route('GET', '/gateway'))
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/discord/http.py", line 137, in request
r = yield from self.session.request(method, url, **kwargs)
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/aiohttp/client.py", line 555, in __iter__
resp = yield from self._coro
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/aiohttp/client.py", line 198, in _request
conn = yield from self._connector.connect(req)
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/aiohttp/connector.py", line 314, in connect
.format(key, exc.strerror)) from exc
aiohttp.errors.ClientOSError: [Errno 101] Cannot connect to host discordapp.com:443 ssl:True [Can not connect to discordapp.com:443 [Network is unreachable]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/phobit/PycharmProjects/DiscordSippenBot/Discord/Starter.py", line 12, in <module>
Starter()
File "/home/phobit/PycharmProjects/DiscordSippenBot/Discord/Starter.py", line 9, in Starter
return Starter()
File "/home/phobit/PycharmProjects/DiscordSippenBot/Discord/Starter.py", line 6, in Starter
import Main
File "/home/phobit/PycharmProjects/DiscordSippenBot/Discord/Main.py", line 228, in <module>
client.run(SECRETS.TOKEN)
File "/home/phobit/PycharmProjects/DiscordSippenBot/venv/lib/python3.6/site-packages/discord/client.py", line 519, in run
self.loop.run_until_complete(self.start(*args, **kwargs))
File "/usr/lib/python3.6/asyncio/base_events.py", line 444, in run_until_complete
self._check_closed()
File "/usr/lib/python3.6/asyncio/base_events.py", line 358, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7fb62f085a90>
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7fb62f0975c0>
Dieser Error gleicht sich fast völlig dem "normalen" Error, wenn kein Netzwerk mehr da ist, nur das diesmal unten diese RuntimeError und Unclosed Session Zeilen auftauchen.