NEWS
Konsolenbefehl wird nich beendet
-
Hallo
Ich nutze Sudo und tcpdump in ein Script.
var sudo = require('sudo'), tcpdump = sudo(['tcpdump', '-w', '-', '-U', 'host 192.168.2.127']);
Das Script läuft immer und überwacht die IP 192.168.2.127.
Sendet diese IP, reagiert das Script auf den Inhalt des Buffers und ändert ein Opjekt von false auf true.
Beende ich das Script dann läuft tcpdump weiter.
Wie kann man das verhindern?
Gruß NetFritz
-
Naja du musst den Prozess beenden
Ansatzpunkte:
https://nodejs.org/api/child_process.ht … ill_signal
https://github.com/ioBroker/ioBroker.ja ... .md#onstop
Gesendet vom Handy ...
-
Hallo
Hatte inzwischen ein 2. Script erstellt.
Da wird das Objekt vom state vom ersten script überwacht und wenn false
tcpdump gekillt.
Mit subprocess.kill([signal]) muss ich mich mal beschäftigen.
Wenn tcpdump im Subprocess ist muss ich aber die Ausgabe
im Hauptprocess haben.
Habe noch nicht den richtigen Einstieg dazu gefunden.
Gruß NetFritz
-
Meine Idee wäre das Du eine "onStop" Funktion definierst und da drin das kill machst.
Die sudo methde gibt einen suprocess zurück … die Instanz hast Du also schon.
-
Hallo
Habe es mit onstop durchgeführt.
Läuft Danke.
NetFritz
-
Poste es doch mal, vllt hilft es anderen auch mal
-
Hallo
Hier der Code der ausgeführt wird wenn das Script beendet wird.
// Am Scriptanfang var conn = require('net'); // Am Scriptende onStop(function skriptStop () { // Funktionen, die noch ausgeführt werden sollen, wenn das Skript beendet wurde tcp_dump = sudo(['killall','tcpdump']); tcp_dump.stderr.on('data', function (data) { console.log(data.toString()); }); }, 100 /*ms*/);
Gruß NetFritz