我正在使用 Java exec 运行 bash 脚本,但是当我输入 CTRL+C 时,Java 进程将退出,子进程也会退出,如何在 JVM 关闭后让子进程继续运行?
String command = "ffmpeg -re -strict -2 -i video.mp4 -c:v copy -an -f rtp rtp://127.0.0.1:1234";
Utils.writeToFile("sub.sh", command);
new ProcessBuilder("parent.sh", "sub.sh").inheritIO()
.start().waitFor();
parent.sh:
#!/bin/bash
trap '' SIGINT SIGTERM SIGQUIT SIGHUP SIGTSTP
nohup "$@" &
我已经在这里和这里阅读了类似问题的答案,例如,在该脚本运行命令中使用 nohup 启动父 bash 脚本,或使用 trap 命令来阻止信号,在我的研究中,它可以工作,例如“tail -f somefile”,但是不适用于我的用例“ffmpeg -params”,请帮忙,谢谢。
MM们
相关分类