Ssh

如何使用 SSH 啟動 nohup ffmpeg 命令並在斷開連接後使其執行?

  • November 12, 2021

我正在嘗試通過 SSH 啟動一系列 FFMPEG 命令。我的 SSH 客戶端是 Windows Server 2019(版本 1809 build 17763.2114)中的本機 openssh (7.7.2.1) 客戶端。我試圖執行的命令是這樣的:

C:\Windows\System32\OpenSSH\ssh.exe -v user1@10.0.0.1 -n -t 'nohup /home/user1/ffmpeg/ffmpeg -f lavfi -i testsrc -f null - -nostdin -nostats -hide_banner -loglevel error &'

其他 stackexchange 答案表明使用“nohup”和“&”命令將啟動命令並釋放控制台。我面臨的問題是命令執行,但控制台不釋放會話並保持命令執行。

如果我在行尾附加“\”,則會話釋放,但命令停止。

如果我強制斷開連接,那麼 ffmpeg 命令會繼續執行,但我需要一種平穩的方式來釋放程序,以便我的 powershell 腳本可以繼續執行。我想將所有這些命令放在一行上。如何連接、啟動此命令、斷開連接並讓它繼續執行?

我很快找到了答案。我不得不通過重定向控制台輸出來修改我自己的命令。

C:\Windows\System32\OpenSSH\ssh.exe -v user1@10.0.0.1 -n "nohup /home/user1/ffmpeg/ffmpeg -f lavfi -i testsrc -f null - -nostdin -nostats -hide_banner -loglevel error > /dev/null 2>&1  &  "

我將能夠用另一個文件替換 /dev/null 以將輸出寫入。

引用自:https://unix.stackexchange.com/questions/677244