summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabian Schillinger2010-11-05 13:10:59 +0100
committerFabian Schillinger2010-11-05 13:10:59 +0100
commit0cf2b018ec98f22f64f437773aae4da28a2a2d97 (patch)
tree21eea56c7c2cc5831d8ad372e09a6d58767c4bc9
parentProcess start/stop/view functionality (diff)
downloadpvs-0cf2b018ec98f22f64f437773aae4da28a2a2d97.tar.gz
pvs-0cf2b018ec98f22f64f437773aae4da28a2a2d97.tar.xz
pvs-0cf2b018ec98f22f64f437773aae4da28a2a2d97.zip
Aktualisierung Projektdoku ...
-rw-r--r--doc/LaTeX/bilder/processlist.pngbin0 -> 74236 bytes
-rw-r--r--doc/LaTeX/devel/0300-pvs.tex41
-rw-r--r--doc/LaTeX/user/0001-chapter.tex24
-rw-r--r--src/gui/ui/processesDialog.ui2
4 files changed, 63 insertions, 4 deletions
diff --git a/doc/LaTeX/bilder/processlist.png b/doc/LaTeX/bilder/processlist.png
new file mode 100644
index 0000000..20074ee
--- /dev/null
+++ b/doc/LaTeX/bilder/processlist.png
Binary files differ
diff --git a/doc/LaTeX/devel/0300-pvs.tex b/doc/LaTeX/devel/0300-pvs.tex
index 4978571..4d46c49 100644
--- a/doc/LaTeX/devel/0300-pvs.tex
+++ b/doc/LaTeX/devel/0300-pvs.tex
@@ -393,6 +393,25 @@ in Präprozessorbedingungen geschehen.
Eine API-Referenz zur libpvsinput (Stand: 4.~November~2010) findet sich im Projektwiki
unter \url{http://lab.openslx.org/projects/pvs/wiki/RemoteKeyMouse}.
+\section{Prozesse fernsteuern}
+\index{Prozesse fernsteuern}
+
+\subsection{Prozesse starten}
+\index{Prozesse!starten} \index{starten}
+Das ferngesteuerte Starten von Prozessen funktioniert durch den einfachen Versand eines PVSCOMMAND mit dem dem Ident STARTPROCESS an den Client, der Inhalt des PVSCOMMAND ist in diesem Fall ein durch den Dozenten angegebener Prozess. Der Client versucht diesen Prozess lokal zu starten.\\
+Sollte hierbei ein Fehler auftreten schickt der Client dem Manager ein PVSCOMMAND mit Ident PROCESSES, der Inhalt besteht dann aus der Nachricht START ERROR und einer Zahl, die die Art des Fehlers angibt.
+
+\subsection{Prozesse beenden}
+\index{Prozesse!beenden} \index{beenden}
+Das ferngesteuerte Beenden von Prozessen funktioniert analog zum Starten durch den Versand eines PVSCOMMAND mit dem dem Ident KILLPROCESS an den Client, hier gibt der Inhalt die lokale PID, des zu beendenden Prozesses an.\\
+Auch hier schickt der Client dem Manager bei einem Fehler ein PVSCOMMAND mit Ident PROCESSES, der Inhalt besteht dann aus der Nachricht STOP ERROR und einer Zahl, die die Art des Fehlers angibt.
+
+\subsection{Prozesseliste anzeigen}
+\index{Prozesse!anzeigen} \index{anzeigen}
+Hier sendet der Manager dem Client ein PVSCOMMAND mit Ident SHOWPROCESSES. Das PVSCOMMAND mit Ident SHOW und Inhalt clear lässt den Client seine Prozessliste leeren.\\
+Anschließend wird der Inhalt von \textit{/proc/} auf dem Client ausgelesen, ist kein Inhalt vorhanden wird ein PVSCOMMAND mit Ident PROCESSES und Nachricht SHOW ERROR gesendet. Sonst werden sämtliche Ordner in \textit{/proc/} die nur aus Zahlen bestehen durchlaufen. Es wird die Datei \textit{status} ausgelesen um den Namen des Prozesses und die UID des Besitzers zu erhalten. Ist die UID nicht identisch mit der UID des Client wird dieser Prozess verworfen, somit ist sichergestellt, dass nur Prozesse angezeigt werden, bei denen auch tatsächlich die Berechtigung vorhanden ist sie zu beenden. Ist dies der Fall wird außerdem noch ein Teil der Datei \textit{cmdline} ausgelesen. Der Client sendet daraufhin ein PVSCOMMAND mit Ident SHOW und Inhalt PID<\#>Name<\#>cmdline und füllt somit seinen Prozessvektor auf. Ist \textit{/proc} komplett abgearbeitet wird ein PVSCOMMAND mit Ident SHOW und Inhalt finished abgesendet, dies löst ein Neues lesen der Prozessliste Managerseitig aus:\\
+Hier wird zu beginn die Prozessliste des Client gelöscht und der Prozessvektor des Clients gelesen. Für jeden Eintrag der Art PID<\#>Name<\#>cmdline wird eine neue Zeile in der Prozessliste geschrieben und PID, Name und cmdline in die jeweiligen Zellen geschrieben.
+
\section{Netzwerkkommunikation}
\index{Netzwerkkommunikation}
@@ -421,6 +440,9 @@ PVSCOMMAND & UNPROJECT & & \\
PVSCOMMAND & LOCKSTATION & & \\
PVSCOMMAND & LOCKSTATION & Message & Client mit Nachricht sperren \\
PVSCOMMAND & UNLOCKSTATION & & \\
+PVSCOMMAND & STARTPROCESS & process & gibt Prozessnamen an der auf Client gestartet werden soll\\
+PVSCOMMAND & KILLPROCESS & PID & gibt ProzessID an von Prozess der auf Client beendet werden soll\\
+PVSCOMMAND & SHOWPROCESSES & & weist den Client an seine Prozesse auszulesen und den Prozessvektor zu füllen\\
PVSLOGIN & USERNAME & username & Client Benutzername \\
PVSLOGIN & PASSWORD & password & Serverpasswort \\
PVSLOGIN & ID & id & \\
@@ -435,14 +457,31 @@ PVSCOMMAND & VNCREQUEST & & \\
PVSCOMMAND & VNCSRVRESULT & result code & Der Rückgabewert des pvs-vncsrv Skripts \\
PVSCOMMAND & MCASTFTANNOUNCE & sender transferID basename size port & Ankündigung eines Multicast-Transfer \\
PVSCOMMAND & MCASTFTRETRY & sender transferID & Rückmeldung: Konfiguration des Multicast-Empfängers fehlgeschlagen, bitte auf anderem Port noch einmal versuchen \\
+\end{tabular}
+\end{center}
+\caption{Liste der PVS Messages}
+\label{tab:messagelist}
+\end{table}
+
+\begin{table}
+\begin{center}
+\begin{tabular}{l | l | p{2cm} | p{4cm}}
+\label{pvs-msg-liste}
+Nachrichtentyp & Nachrichten Ident & Inhalt & Beschreibung \\
+\hline
PVSCOMMAND & MCASTFTCONFIG & blob & Multicast-Konfiguration aus dem angehängten Binärblob neu laden \\
PVSCOMMAND & INPUTEVENT & Base64-kodierte InputEvent-Struktur & Fernsteuerung \\
+PVSCOMMAND & PROCESSES & START ERROR errorlevel & errorlevel gibt an, welcher Fehler beim Starten eines Prozesses aufgetreten ist \\
+PVSCOMMAND & PROCESSES & STOP ERROR errorlevel & errorlevel gibt an, welcher Fehler beim Beenden eines Prozesses aufgetreten ist \\
+PVSCOMMAND & PROCESSES & SHOW ERROR & gibt an, dass beim Anzeigen der Prozessliste ein Fehler aufgetreten ist \\
+PVSCOMMAND & PROCESSES & SHOW clear & weist Client an den Prozessvektor zu leeren \\
+PVSCOMMAND & PROCESSES & SHOW finished & weist Manager an, Prozessliste neu zu füllen \\
PVSMESSAGE & BROADCAST & MESSAGE &\\
PVSMESSAGE & clientToAdd & & Client hinzufügen (Chat)\\
PVSMESSAGE & clientToRemove & & Client entfernen (Chat)\\
PVSMESSAGE & assignedName & & Festgelegter Name (Chat)\\
\end{tabular}
\end{center}
-\caption{Liste der PVS Messages}
+\caption{Liste der PVS Messages (Fortsetzung}
\label{tab:messagelist}
\end{table}
diff --git a/doc/LaTeX/user/0001-chapter.tex b/doc/LaTeX/user/0001-chapter.tex
index 200ffa5..a7b2d75 100644
--- a/doc/LaTeX/user/0001-chapter.tex
+++ b/doc/LaTeX/user/0001-chapter.tex
@@ -56,7 +56,7 @@ Auf dem Bild \ref{fig:pvsdummy} kann man verbundene Clients (\textit{Nicht dummy
befindet sich die korrespondierte IP-Adresse. Der grüne Punkt ganz rechts im Gegenteil zum dummy-Frame zeigt, dass der Client gerade Online ist.\\
Für die Verbundene Clients besteht die Möglichkeit die VNC-Quality (HIGH, MEDIUM oder LOW) jeder Zeit einzustellen. Mit \textit{Set Password} kann der Manager ganz bequem
festlegen, ob die Clients zur Verbindung mit dem pvsmgr ein von System generiertes Passwort eingeben müssen oder nicht. Auf dem Toolbar werden weitere Funktionen wie:
-Screeshots aufnehmen, Chat mit dem einzelnen Client starten oder alle Clients auf einem Klick zu blockieren. Das Blockieren der Clients schließt natürlich der Dozent-Rechner
+Screeshots aufnehmen, Chat mit dem einzelnen Client starten, ferngesteuert auf den markierten Clients Prozesse starten, eine Prozessliste zu öffnen in der die Prozesse sämtlicher verbundenen Clients angezeigt werden oder alle Clients auf einem Klick zu blockieren. Das Blockieren der Clients schließt natürlich der Dozent-Rechner
aus. Der Dozent-Rechner hebt sich von einem anderer verbundenen Machine durch den Rot-Blau Zeichnen neben dem grünen Punkt hervor.
\\
Befindet sich die Maus über einem VNC-Frame, so ist über dem Bildschirminhalt eine Reihe von
@@ -93,8 +93,28 @@ es erscheint dann ein Menü, aus dem die gewünschte Aktion ausgewählt werden k
{\em Vorsicht:} Die Steuerkonsole fragt vor der Ausführung einer Aktion nicht noch einmal
nach.
\\ \\
-Im letzten Punkt dieser Abschnitt wollen wir die vorhandenen Tastenkürzel vorstellen.
+\subsection{Prozessliste anzeigen}
+\label{Prozessliste}
+Hier ein Überblick über die Prozessliste (Siehe Abbildung \ref{png:Prozessliste}).\\
+\begin{enumerate}
+ \item Anzeige der Tabs - hier wird für jeden Client ein neuer Reiter erstellt, ein Klick auf den Reiter aktiviert die Anzeige für diesen Client. Die Prozessliste wird daraufhin aktualisiert.
+ \item Prozessliste - Hier werden die Prozesse des gewählten Clients angezeigt, in den Spalten stehen die ProzessID, der Name und die Commandline. Die Prozessliste wird alle 5 Sekunden aktualisiert, ausser es ist mindestens eine Zeile markiert. Es können mehrere Zeilen markiert werden, sie müssen nicht zusammenhängen.
+ \item Buttons Refresh und Stop process - mit Refresh wird die Liste aktualisiert, unabhängig davon, ob Zeilen markiert wurden. Ein Klick auf Stop process beendet die markierten Prozesse nach einer erneuten Abfrage.
+ \item Start Process - Ein eingegebener Prozess wird auf dem aktuellen Client gestartet.
+\end{enumerate}
+Mit einem Klick auf Close werden die Prozesslisten geschlossen.
+\begin{figure}[h]
+ \centering
+ \includegraphics[scale=0.5]{bilder/processlist.png}
+ \caption{Prozessliste}
+ \label{png:Prozessliste}
+\end{figure}
+\\
+
+
+
+Im letzten Punkt dieses Abschnitts wollen wir die vorhandenen Tastenkürzel vorstellen.
\subsection{Tastenkürzel für PVS-Server}
\label{Taste}
Einige schlaue Tastenkombinationen sollen die Ausnutzung der PVS-Konsole erleichten.
diff --git a/src/gui/ui/processesDialog.ui b/src/gui/ui/processesDialog.ui
index 4ac4859..14d2403 100644
--- a/src/gui/ui/processesDialog.ui
+++ b/src/gui/ui/processesDialog.ui
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
- <string>Prozesse</string>
+ <string>Processes</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">