Hallo,
ich habe Schwierigkeiten damit zwei per Pipe verbundene Befehle in einen Hintergrund-Prozess zu verschieben. Starte ich die Programme im Terminal läuft es allerdings. Wie kann ich folgendes ohne interaktive Shell lösen?
Szenario: Senden von Audio-Daten über Netcat (nc) an einen zweiten Rechner.
Mögliche Lösung (hier Client=Server=localhost):
# 1. Warten auf Input auf dem Server nc -k -l -p 12345 | aplay # ================= # 2. Loopback Device starten und input versenden. sudo modprobe snd-aloop arecord -f cd -D hw:Loopback,1,0 | nc localhost 12345 # ================= # 3. Teststream an neuen Ausgang senden mplayer -ao alsa:device=hw=Loopback.0.0 -delay 0.3 {Datei}
Starte ich obiges in drei Konsolen, läuft es wie erwartet. Wähle ich aber beispielsweise dieses Konstrukt, um die erste Prozesskette im Hintergrund zu starten
nohup bash -c "nc -k -l -p 12345 | aplay " &
sehe ich beide Programme in der Prozessliste, aber dann kann keine Verbindung (arecord-Zeile…) zu dem Port aufnehmen.
Wie könnte man das (ohne Screen-Session) lösen?
Gruß Yggdrasil