Hoi @all,
ich baue gerade an einem bzw. mehreren Skripten herum, die mir ein paar Daten sammeln sollen. Daraus sind insgesamt 3 Skripte und ein Prozess entstanden, die wenn ich sie auf der Kommandozeile starte, den Cursor einfach eine Zeile nach unten rücken und Ihren Dienst tun. Das Problem: ich würde das gerne als "Hintergrundprozess" laufen lassen und das Terminal nicht das Terminal offen lassen.
Wie läuft das ganze ab? Ich habe insgesamt 3 Skripte, die unterschiedliche Sachen machen, Basis ist die Auswertung von ATOP. Das sieht also derzeit wie folgt aus:
atop-Aufruf | Skript1 | Skript2 | Skript3
Das ganze kann ich derzeit auf zwei Wegen starten um es in den Hintergrund zu bringen:
a) screen: Starten des Aufrufs und CTRL+A+D b) Starten des Aufrufs mit einem & am Ende (schicks in den Background)
Jetzt möchte ich das ganze in einem INIT-Skript bauen. Sprich mittels
/etc/init.d/meineSkripts start
starten und stoppen können. Hierbei tauchen folgende Probleme auf:
a) welche PID?
Ich will in meinem INIT-Skript gerne eine PID bzw. ein PID-File verwenden. Wenn ich eine Sammlung von Skripten mittels Pipe starte und versuche anschließend die PID zu ermitteln, bekomme ich nur die letzte PID (die des Skript3). Ich hab zwar über PID-Gruppen schon eine Möglichkeit gefunden, alle PIDs zu ermitteln, aber toll ist es nicht)
b) wie bekomme ich das ganze sauber in den Hintergrund?
in diversen init-Skripten, die ich gelesen habe (sshd, etc.) habe ich dasn Stichwort "demonize" gefunden, aber damit kann ich nichts anfangen. Auch die Man-Pages helfen mir nicht wirklich weiter.
Hat jemand von Euch eine Idee, wie ich eine Sammlung von Tools in den Hintergrund schicke? Idealer Weise noch die PID von den einzelnen Prozessen raus bekommen. Vielleicht gibts auch eine Möglichkeit das auf eine PID zu reduzieren.
Als besonderes Bonbon: wenn ich meinen Aufruf starte, dann sehe ich auch alle 3 bzw. 4 Prozesse in der Prozesslist. Gibts hier ne Möglichkeit das zu "vereinen", so dass ich nur einen Prozess in der Prozesslist sehe?
Greetz Maddin