我正在编写一个bash脚本,需要通过ssh登录远程机器,启动一个进程,结束ssh会话,做一些其他的事情,然后再次通过ssh登录并杀死进程。但是进程无法被杀死。我尝试了很多种方式。这是无法工作的脚本部分:
我还尝试将tshark命令放入脚本中,这样我可以像以下这样终止脚本:
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脚本不能。