【发布时间】:2018-01-26 10:41:09
【问题描述】:
我正在编写一个 bash 脚本,我需要通过 ssh 登录远程机器,启动一个进程,结束 ssh 会话,做一些其他事情,然后通过 ssh 再次登录以终止该进程。但是该过程不会被杀死。我已经尝试了很多方法。 这是脚本中不起作用的部分:
ssh localadmin@10.101.30.61 &>/dev/null << EOF
tshark -i ens160 -w /home/localadmin/dns_traffic_61.pcap &>/dev/null &
EOF
ssh localadmin@10.101.30.61 &>/dev/null << EOF
kill $(pidof tshark)
EOF
我还尝试将 tshark 命令放入脚本中,这样我会像这样终止脚本:
ssh localadmin@10.101.30.61 &>/dev/null << EOF
sh tshark.sh &>/dev/null &
EOF
ssh localadmin@10.101.30.61 &>/dev/null << EOF
pid=$(ps -ef | grep tshark.sh | grep -v grep | awk '{print $2}')
kill $pid
EOF
还有这个:
ps -ef | grep tshark.sh | grep -v grep | awk '{print $2}'|xargs kill
似乎没有任何效果。
注意:当我通过 ssh 手动连接时,我可以终止进程,只有 bash 脚本不能。
【问题讨论】: