Bash

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

  • May 27, 2019

我有以下腳本

#!/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 命令行的末尾時,它就會掛起。

有任何想法嗎?

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

選項1

省略-t

ssh remote-machine 'command' &

選項 2

遠端程序發送到後台。您可能需要從標準輸入、標準輸出、標準錯誤中分離遠端程序以允許ssh立即返回:

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

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