在 bash 腳本中同時執行 ssh 指令和另一個指令

在 bash 腳本中同時執行 ssh 指令和另一個指令

我有以下腳本

#!/bin/bash
for (( c=0; c<=9; c++ ))
do  
    ssh -t 192.168.30.11 "tshark -i eth1 -f 'src host 192.168.31.10 and tcp' -w shared_folder/results/bbb_var_4_exp_pcaps/capture-output-$c.pcap -a duration:205" &
    python ~/shared_folder/tapas/play.py -u http://192.168.31.10/video-content/mm_videos/bbb_var_4/bbb_var_4.m3u8 -m fake -l my-exp-logs/bbb_var_4_exp_logs 
    sleep 210
done

ssh我正在嘗試在後台運行該命令,第二個命令python不需要第一個命令來完成。但是當我將 & 新增到 ssh 命令列末尾時,它就會掛起。

有任何想法嗎?

答案1

我認為該參數與將命令發送到後台-t不相容。ssh

選項1

省略-t

ssh remote-machine 'command' &

選項2

傳送偏僻的進程到後台。你可能需要將遠端進程與 stdin、stdout、stderr 分離允許ssh立即返回:

ssh -t remote-machine 'command < /dev/null &> /dev/null &'

相關內容