Bereits laufendes Programm aufrufen!

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Professor_Tarantoga
User
Beiträge: 2
Registriert: Sonntag 16. März 2014, 16:26

Hallo Leute!

Kurz zu den Umständen meiner Frage:

Ich möchte ein Programm schreiben, dass bei seinem Aufruf checkt ob im selben Verzeichnis ein Config-File liegt.
Wenn eines vorhanden ist, ließt es von dort einige Parameter aus und gibt auf der Konsole aus, dass eben ein File gefunden wurde und das Programm nun läuft.

Wenn kein Config-File vorhanden ist, fordert das Programm zu einigen Usereingaben auf und legt das Config-File an, sodass beim nächsten Start des Programms wieder die Daten aus dem File gelesen werden und man keinen Userinput mehr braucht.

Diese ganze Sache mit dem Config-File dient dazu, dass wenn man den Strom zieht (das Programm läuft auf einem Raspberry Pi), das Programm ohne User Input wieder starten kann. Dazu wollte ich das Script zur Startup-Routine hinzufügen.

Jetzt zu meinem Problem:
Wenn nun das Config-File existiert, ist alles kein Problem. Das Programm startet beim Einschalten und funktioniert einwandfrei.
Ist aber keines Vorhanden, was klarerweise beim ersten Einschalten bzw. Neukonfigurieren der Fall ist, kann es ja beim Startup nicht nach Userinput fragen.
Daher ruft man das Programm erneut in der Commandline auf. Aber dann hätte ich ja 2 Programme laufen, oder?
Kann man irgendwie checken ob dieses Programm schon läuft und dann dieselbe Instanz erneut starten?

Bzw. kann man den Output den das Programm beim Startup in die Konsole schreibt irgendwie ansehen oder muss man da den Output in ein LogFile schreiben.

LG
Tarantoga
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Professor_Tarantoga: wenn das Programm keine Config-Datei findet, wird es sich doch danach beenden, läuft also gar nicht. Alternativ schreiben Daemonen an einen festgelegten Ort eine pid-Datei mit ihrer Prozess-Id. Diese kann dazu benutzt werden, um zu prüfen, ob schon eine Instanz des Programms läuft und es gegebenenfalls zu beenden. Config-Dateien werden normalerweise mit einem Text-Editor geschrieben und nicht vom Programm durch Usereingaben erzeugt.
Professor_Tarantoga
User
Beiträge: 2
Registriert: Sonntag 16. März 2014, 16:26

Danke für die schnelle Antwort Sirius3. :)

Ich glaube, ich hab da vielleicht ein bisschen zu kompliziert gedacht. Werde jetzt einfach das Konfig-File per Editor anlegen und bei Nichtvorhandensein, das Programm abbrechen lassen.
Danke auch für den Hinweis mit den PIDs.

LG
Prof Tarantoga
Antworten