Ich betreibe unter Ubuntu 16.04.3 LTS einen OpenSimulator Server mit mehreren Instanzen, die ich bisher beim Reboot über Script-Aufrufe in einzelnen screen Sessions gestartet habe, so dass ich über PuTTY mit SSH auf die Konsolen der Simulatoren zugreifen konnte. Der Nachteil dieser Lösung war, dass ich mit PuTTY immer mehrere Fenster öffnen musste wenn ich noch andere Arbeiten durchführen wollte, wie z.B. das Prüfen der Logs etc.
Im Rahmen einer Server-Umstellung wollte ich deshalb meine Skripte von screen auf tmux umstellen und in einer tmux-Session alle Simulatoren in je einem eigenen Fenster starten. Dies würde mir ermöglichen rasch auf die einzelnen Simulator-Konsolen zuzugreifen und bei Bedarf schnell ein Fenster mit einer Shell zu öffnen. Solange die erforderlichen Befehle und Skripte manuell ausgeführt wurden, hat dies auch perfekt funktioniert.
Nachdem ich die Befehle aber während dem Reboot über crontab ausgeführt habe, funktionierten im tmux-Fenster mit der Shell für mich wichtige Tasten nicht mehr, was das Ganze mühsam und irgendwie sinnlos macht. Davon betroffen sind z.B. alle Cursor-Tasten, Delete, und Tab.
Weiss jemand, wie ich das Problem beheben kann?
So sieht mein Abschnitt für den reboot im crontab aus:
1 2 3 4 5 6 7 8 9 | # # Reboot the simulators on restart. # For consistent program logic make sure to start tmux session 'term' with a shell first. # We will add all opensim instance windows to the session called 'term' in order to get # to all of them by simply entering 'tmux a -t term' from a PuTTY terminal session window. # reboot sleep 10 && tmux new-session -d -s term -n bash reboot sleep 20 && ~/scripts/start sim1 reboot sleep 30 && ~/scripts/start sim2 |
Und dies sind die wesentlichen Code-Zeilen im Script, welche eine Instanz des Simulators starten und das Konsolen-Fenster einem benannten Fenster der tmux-Session mit dem Namen term zuweisen.
1 2 3 | simulator="$1" cd "$HOME"/"$simulator"/bin tmux new -d -t term -n "$simulator" 'env LANG=C mono-sgen OpenSim.exe -hypergrid=true' |