Die Befehlszeile des Servers ist eine Funktionalität, bei der der Server den Standard-Eingabestrom liest und jeweils zeilenweise die eingegebenen Daten verarbeitet. Ausgaben, die auf die Befehle hin entstehen, werden in den Standard-Ausgabestrom geschrieben.
D.h. wird der Server in einem Terminalfenster bzw. einer Eingabeaufforderung ausgeführt, so bedeutet das normalerweise, daß mit Hilfe der Tastatur Eingaben vorgenommen werden können, die dann nach Drücken der Eingabetaste (ENTER) als ganze Zeile vom Server verarbeitet werden. Die Ausgaben erscheinen normalerweise dann auch in diesem Terminalfenster bzw. der Eingabeaufforderung.
Logbuch-Ausgaben
Wird der Server angewiesen, die Logbuch-Ausgaben auch in den Standard-Ausgabestrom zu schreiben (Wert terminal), dann erscheinen die Ausgaben der Befehlszeile mit den Log-Einträgen gemischt.
Ende des Eingabestroms
Wird der Eingabestrom geschlossen (z.B. Eingabe von Ctrl-D in der Bash bzw. Ctrl-Z in der CMD.EXE), so endet die Befehlszeilenfunktion des Servers (rückmeldungslos). Eingaben werden danach nicht mehr gelesen.
Durch diese Eigenschaft kann z.B. in der Bash mit Hilfe einer Umleitung ein Server "im Hintergrund" gestartet werden (/dev/null gibt quasi Ctrl-D zurück):
Daemon-Prozesse werden in ähnlicher Weise gestartet.java -DgenRob.genControl.port=2001 -jar genRob.genControl.jar < /dev/null &
Befehle
Die Befehlszeile kann nur ganz einfache Befehle verarbeiten. Jeder Befehl ist jeweils ein einzelner Buchstabe, der vom Drücken der Eingabetaste gefolgt wird. Vor und hinter jedem Befehl dürfen keine weiteren Zeichen stehen.
Folgende Befehle kennt der Server:
Befehl | Beschreibung | Ausgaben |
---|---|---|
e | Beenden des Servers - laufende Roblets® werden (bedinungslos) beendet | Es wird das Wort EXIT ausgegeben. |
g | Läßt den Garbage-Collector der JVM laufen. | keine |
l | Auflisten aller Threads und Gruppen in hierarchischer Form | Auflistung aller Threads und Gruppen in hierarchischer Form |
m | Ausgabe aller eingemeldeten und (noch) nicht aufgeräumten Instanzen des Speicherwächters. Überwacht werden nur Instanzen die auch potentiell Einträge ins Logbuch machen. |
Es werden die Instanzen mit Klassenname und
identity hash code gefolgt vom Ergebnis der
toString()-Abfrage (zum Zeitpunkt der Einmeldung).
Ist kein Speicherwächter aktiviert, so wird NO MEMORIZER ausgegeben. |
p | Auflisten aller Threads eingerückt nach Priorität | Auflistung aller Threads eingerückt nach Priorität |