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