Ich habe ein sh
Skript, das ffmpeg
auf mehrere Dateien aufruft. Wenn ich versuche, dieses Skript im Hintergrund laufen zu lassen, Ausgabe in eine Datei umleiten, beginnt der Job, aber dann unterbricht sofort:Wenn ich `ffmpeg` im Hintergrund starte, wie verhindere ich` suspended (tty output) `?
% bin/mp3convert.sh path/a/b &> ~/tmp/log.txt &
[1] 93352
%
[1] + suspended (tty output) bin/mp3convert.sh path/a/b &>
Wenn ich versuche, das Skript im Hintergrund weiter zu machen, setzt es sofort wieder:
% jobs
[1] + suspended (tty output) bin/mp3convert.sh path/a/b &>
% bg %1
[1] + continued bin/mp3convert.sh path/a/b &>
% jobs
[1] + suspended (tty output) bin/mp3convert.sh path/a/b &>
%
Ich kann das Skript weitermachen, indem ich es zum Vordergrund mache, aber dann ist mein Terminal besetzt, bis das Skript beendet ist. Das bedeutet, dass ich nicht den Vorteil habe, das Skript im Hintergrund auszuführen.
Wie kann ich das Skript sauber im Hintergrund laufen lassen?
Eine vereinfachte Version von meinem Skript ist:
#!/bin/sh
# mp3convert.sh
for f in "$1"/*.flac; do
ffmpeg -i "$f" -c:v copy path/to/dest/"$(basename -s .flac "$f")".mp3
done
ich auf Mac OS X 10.11.6 leite, mit ffmpeg
version 3.4 von MacPorts geliefert.
Eine scheinbar verwandte Frage ist why do I get “Suspended (tty output)” in one terminal but not in others?. Die Antwort dort ist, den Terminal-Zustand mit stty -tostop
zu setzen. Das hat mir nicht geholfen; Ich hatte diesen Zustand bereits eingestellt.
Nun, da ich den Knopf gedrückt Frage habe, kommt mir der Gedanke, dass diese Frage mehr angemessen passen könnte in [ Super User] (https://superuser.com/questions/tagged/ffmpeg). –