Bash Shell Script远程后台处理



我创建了一个Bash Shell脚本。有了它,我可以裁剪和转换视频本地..

nohup ffmpeg -i "$c1" -vf "$crop_value1" -b 1800k "/home/Cropped/""$name1"_cropped.mp4"" > crop1.txt &
PID1=$!
nohup ffmpeg -i "$c2" -vf "$crop_value2" -b 1800k "/home/Cropped/""$name2"_cropped.mp4"" > crop2.txt &
PID2=$!
nohup ffmpeg -i "$c3" -vf "$crop_value3" -b 1800k "/home/Cropped/""$name3"_cropped.mp4"" > crop3.txt &
PID3=$!
nohup ffmpeg -i "$c4" -vf "$crop_value4" -b 1800k "/home/Cropped/""$name4"_cropped.mp4"" > crop4.txt &
PID4=$!
wait $PID1
wait $PID2
wait $PID3
wait $PID4

如上所示,我在本地服务器后台使用4转换,我正在使用等待PID来检查会话是否完成。

我的问题是很晚才转换…因此,我考虑通过SSH在本地服务器上转换一个转换,在不同的远程服务器上转换另外三个转换例子:

ssh user@192.168.1.1 "nohup ffmpeg -i "$c1" -vf "$crop_value1" -b 1800k "/home/Cropped/""$name1"_cropped.mp4"" > crop1.txt &"

我的问题是执行远程命令后如何获得远程PID并使用PID等待选项为所有远程连接。

ssh命令置于后台,而不是远程命令:

ssh user@192.168.1.1 "nohup ffmpeg -i "$c1" -vf "$crop_value1" -b 1800k 
    "/home/Cropped/""$name1"_cropped.mp4"" > crop1.txt" &
PID1=$!

顺便说一句,您不需要为每个后台进程都使用wait命令。如果不带参数运行wait,它将等待所有后台进程。

相关内容

  • 没有找到相关文章

最新更新