查找gearman非法注册函数进程

使用gearman时,由于gearman没有权限控制,导致任何能连接到job server的程序都能注册函数,尤其在开发阶段,可能有来自不同机器上的程序连接了job server注册了一些测试函数。

当使用gearadmin –status查看query status时,会发现一些不知所云的注册函数,如:

test    0       0       1

那怎样知道这个test函数是哪个程序注册的呢?

  • 先gearadmin –workers | grep test
74 172.16.18.165 - : test

这里会显示fd|ip|function,如前面的74就是gearmand程序打开的文件描述符,172.16.18.165表示注册函数的程序所在的主机地址。
记下这里的fd和ip

  • ps -ef|grep gearmand,查看gearmand进程pid
root      6717  3130  0 Jun26 ?        02:13:27 /usr/local/gearmand
  • ll /proc/6717/fd | grep 74
lrwx------ 1 root root 64 9ÔÂ  23 12:41 74 -> socket:[543424698]

看到 socket:[543424698]

  • grep 543424698 /proc/net/tcp
  • gre 543424698 /proc/net/tcp6
77: 721210AC:127A A51210AC:EB08 01 00000000:00000000

721210AC:127A表示172.16.18.114:4730,表示gearmand的监听地址及端口
A51210AC:EB08表示172.16.18.165:60168,表示连接gearman的work(即注册test函数的进程)客户端的地址及端口号

  • 登录172.16.18.165,netstat -apn | grep 60168
tcp        0      0 172.16.18.165:60168         172.16.18.114:4730          ESTABLISHED 29172/gearman  

29172/gearman就是注册test函数的进程pid

  • ps -ef|grep 29172
root     29172 29077  0 14:15 pts/10   00:00:00 ./gearman -h 172.16.18.114 -w -f test

到这里看到test函数是位于172.16.18.165机上的gearman程序注册的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值