|
|
@@ -191,26 +191,28 @@ erzwingen.
|
|
191
|
191
|
1. Auf Basis des Crate *procinfo* sollen Sie bei Aufruf des Programms mit einer
|
|
192
|
192
|
PID, ausgehend von dieser PID der Tree bis zum aktuellen Programm ausgegeben
|
|
193
|
193
|
werden. Wird somit als Argument eine `1` angegeben, wird eine Funktionalität
|
|
194
|
|
- des Kommandozeilen Programms **pstree** nachgebildet. Wenn Sie sich z.B. mit
|
|
|
194
|
+ des Kommandozeilen Programms **pstree / pstree.x11** nachgebildet. Wenn Sie sich z.B. mit
|
|
195
|
195
|
dem Kommando **ps** die PID Ihrer aktuellen Shell anzeigen lassen, können Sie
|
|
196
|
|
- sich durch Aufruf von **pstree -p -s PID** die Kette aller Elternprozesse
|
|
197
|
|
- dieser PID anzeigen lassen.
|
|
|
196
|
+ sich durch Aufruf von **pstree.x11 -p -s <pid>** die Kette aller Prozesse
|
|
|
197
|
+ anzeigen lassen, in denen die <pid> enthalten ist.
|
|
198
|
198
|
|
|
199
|
199
|
```text
|
|
200
|
|
- systemd(1)---sshd(1264)---sshd(7161)---sshd(7198)---zsh(7199)---pstree(47200)
|
|
|
200
|
+ systemd(1)---sshd(1264)---sshd(7161)---sshd(7198)---zsh(7199)---pstree.x11(47200)
|
|
201
|
201
|
```
|
|
202
|
202
|
|
|
203
|
|
- Genau diese Ausgabe soll nun ihr Programm erzeugen bei der Option '1'. Geben
|
|
204
|
|
- Sie im obigen Beispiel die PID 7161 als Parameter an, so wird nur der
|
|
205
|
|
- Teil-Tree ausgegeben, startend vom Prozess mit PID 7161.
|
|
|
203
|
+ Genau diese Ausgabe soll nun Ihr Programm erzeugen bei der Option '1', wobei
|
|
|
204
|
+ natürlich das Ende der Kette nicht mehr `pstree.x11` ist sondern Ihr Programm.
|
|
|
205
|
+
|
|
|
206
|
+ Geben Sie im obigen Beispiel die PID 7161 als Parameter an, so soll Ihr Programm
|
|
|
207
|
+ nur den Teil-Tree ausgegeben, startend vom Prozess mit PID 7161.
|
|
206
|
208
|
|
|
207
|
209
|
```text
|
|
208
|
|
- sshd(7161)---sshd(7198)---zsh(7199)---pstree(47200)
|
|
|
210
|
+ sshd(7161)---sshd(7198)---zsh(7199)---task1(47200)
|
|
209
|
211
|
```
|
|
210
|
212
|
|
|
211
|
213
|
Ausgehend von der eigenen pid sollen alle Elternpid bis zum übergebenen PID
|
|
212
|
214
|
(z.B. 1 für init Prozess, hier `systemd`) angezeigt werden. Der Init Prozess
|
|
213
|
|
- (hier systemd) hat immer die PID 1 in UNIX Systemen.
|
|
|
215
|
+ (hier systemd) hat immer die PID 1 in UNIX Systemen, aber unterschiedliche Namen.
|
|
214
|
216
|
|
|
215
|
217
|
1. Nutzen Sie zum parsen der PID im Argument die `parse()` Funktion. Behandeln
|
|
216
|
218
|
Sie folgende Fehler:
|
|
|
@@ -232,13 +234,13 @@ erzwingen.
|
|
232
|
234
|
|
|
233
|
235
|
1. Erstellen Sie eine eigene Datenstruktur und Methoden um die Aufgabe zu lösen.
|
|
234
|
236
|
Verwenden Sie nur die externe Crate *procinfo* dazu. Die Ausgabe beim Aufruf
|
|
235
|
|
- Ihres Programms muss dieses Format haben:
|
|
|
237
|
+ Ihres Programms muss folgender Beispielformatierung entsprechen:
|
|
236
|
238
|
|
|
237
|
239
|
```text
|
|
238
|
|
- systemd(1)---sshd(1264)---sshd(7161)---sshd(7198)---zsh(7199)---cargo(47150)---task2(47151)
|
|
|
240
|
+ systemd(1)---sshd(1264)---sshd(7161)---sshd(7198)---zsh(7199)---task1(47151)
|
|
239
|
241
|
```
|
|
240
|
242
|
> Je nachdem wie Sie Ihr Programm aufrufen wird es natürlich andere Ausgaben
|
|
241
|
|
- > produzieren. Durch das Kommandozeilen-Tool **pstree** können Sie Ihre
|
|
|
243
|
+ > produzieren. Durch das Kommandozeilen-Tool **pstree.x11** können Sie Ihre
|
|
242
|
244
|
> Ausgabe kontrollieren!
|
|
243
|
245
|
|
|
244
|
246
|
1. Schreiben Sie eine eigene unit Test Datei `unit_test_pstree.rs`, die Ihre
|