Discord Bot geht aus, wenn ich Putty verlasse?

8 Antworten

Auch wenn Du ein Programm im Hintergrund startest, gehört es noch zur Shell (und wird beendet, wenn das Terminal geschlossen wird).

Bash hat einen builtin-Befehl disown, mit dem Du den letzten Job (oder auch jeden anderen) abtrennen kannst. Er läuft dann als eigener Prozess weiter und bleibt auch nach dem Ausloggen aktiv. Du musst ihn dann eben explizit (z. B. mit kill) beenden.

Ich würde tmux gegenüber Screen vorziehen.

Woher ich das weiß:Studium / Ausbildung – Informatik

Du kannst die Anwendung mittels eines Daemon starten oder einfach als Job laufen lassen. Ich würde Variante 1 wählen.

Nehmen wir mal an dein Bot ist in /script/discordbot.sh (Ein paar nähere Infos zu dem, was du gemacht hast würden helfen...)

Dann erstellst du eine Datei /etc/systemd/system/discordbot.service und schreibst rein:

[Unit]
Description=Teamspeak Server

[Service]
ExecStart=/bin/bash /script/discordbot.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target 

Danach noch starten..

sudo systemctl daemon-reload 
sudo systemctl enable discordbot.service 
sudo systemctl start discordbot.service 
sudo systemctl status discordbot.service 

Den Systemd Service kann (und sollte!) man noch anpassen und um Sicherheitseinstellungen erweitern, aber das sollte erstmal seinen Zweck erfüllen und dein Script im Hintergrund ausführen.

Woher ich das weiß:Studium / Ausbildung – Studium in theoretischer Informatik (Master)

Wenn du deinen Bot in der Putty Session startest bleibt er auch dort. Sobald die Session beendet wird, wird auch der Bot beendet der sich in der Session befindet.Eine Loesing fuer das Problem waere zum Beispiel einen "screen" zu oeffnen. Unter Debian/Ubuntu machst du das mit:

sudo apt istall screen -y

um den Bot im screen zu starten:

screen -S bot ./start_bot

Ich hoffe, dass hilft dir mit deinem Discord Bot.

Woher ich das weiß:Hobby