永发信息网

请教关于popen执行后台命令的问题

答案:1  悬赏:10  手机版
解决时间 2021-02-08 03:07
  • 提问者网友:萌卜娃娃
  • 2021-02-07 09:52
请教关于popen执行后台命令的问题
最佳答案
  • 五星知识达人网友:独行浪子会拥风
  • 2021-02-07 11:09
貌似通过php本身不好解决,最后我写了个shell脚本解决了。

#$1: client ip
#$2: client port
#$3: cmd keyword used for killall

pid=$$
echo $1 $2 $$
echo "netstat -an | grep \"$1:$2\""
while [ 1 -eq 1 ]
do
result=`netstat -an | grep 'ESTABLISHED' | grep "$1:$2"`
if [ "$result"x = x ];
then
echo "end"
break
fi
echo "continue"
sleep 1
done

killall -9 "ping"
kill $$

在php里面popen('ping 8.8.8.8', 'r');之前,先执行这个脚本,分别将客户端ip,客户端端口,命令关键字作为3个参数传给这个shell脚本。
当客户端连接断开后,这个shell脚本会kill掉ping(也就是命令关键字),和它自己。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯