Öh... Du musst mal lernen, mehr nachzudenken! Du hast ja meinen *Pseudo*Code quasi eins zu eins übernommen - das Wort "Pseudo" legte doch nahe, dass es sich nur um eine simple Veranschaulichung des Ablaufs handeln sollte und nicht um *lauffähigen* Code. Dann hätte ich eher das Wort Code-Template gewählt.
- Mit `exist(pidpath)` wollte ich nur ausdrücken, dass Du eine Funktionalität benötigst, welche prüft, ob die PID-Datei existiert. Eine Funktion `exist` gibt es natürlich gar nicht!
- `pidpath.write` ist natürlich auch nicht funkionsfähig - es sollte nur verdeutlichen, dass man diese Datei anlegen muss, wenn sie noch nicht existiert. Zugegeben sehe ich jetzt, dass diese Pseudocodedarstellung schlecht war. Ein `write(pidpath)` wäre da klarer gewesen.
- `start_bestellorder()` wiederum hast Du an der falschen Stell eingefügt! Rein funktional macht es zwar keinen Unterschied, aber ich würde es aus dem `else`-Zwei dennoch herausziehen, da es mit der initialen Kontrolle des PID-Files nichts mehr zu tun hat. (Also die Einrückungsebene beachten!)
- `remove(pidpath)` gibt es natürlich - analog zu den obigen Themen - auch nicht.
Ich hätte Dir anstelle des Codes auch eine Art Sequenzdiagramm malen können, so wie das folgende:
Code: Alles auswählen
+--------+
| Start |
+----+---+
|
|
v
+-----------+ +------------+ +-------------+
| Prüfe, ob | False | PID-File | | Eigentliche |
| PID-File +-------->| anlegen +-------->| Funktion |
| existiert | +------------+ | ausführen |
+-----+-----+ +-----+-------+
| |
|True |
v v
+------------+ +------------+
| Programm | | PID-File |
| abbrechen | | löschen |
+------------+ +-----+------+
|
v
+-------------+
| Programm |
| beenden |
+-------------+
Aber das war mir zu aufwendig
deets wies ja schon auf die Problematik hin, dass man die Datei vor allem "locken" muss, um das Problem zu lösen, welches auftritt, wenn beim Ausführen des Programmes ein Fehler auftritt und demzufolge die Datei am Schluss nicht mehr gelöscht wird.