我正在尝试找到一种方法在调试模式下启动Kamailio或OpenSIP服务器的单个进程,但我无法这样做。
我正在使用以下命令启动带有前景的Kamailio
./kamailio -l 192.168.1.117:5060 -eD
执行命令后,我看到4 kamailio进程开始
ps aux | grep kamailio
meetme2meat 27433 0.0 0.0 2461016 464 s004 U+ 6:18PM 0:00.00 grep kamailio
meetme2meat 27370 0.0 0.0 2558672 1828 s005 S+ 6:16PM 0:00.01 ./kamailio -l 192.168.1.117:5060 -eD
meetme2meat 27369 0.0 0.0 2558672 1836 s005 S+ 6:16PM 0:00.01 ./kamailio -l 192.168.1.117:5060 -eD
meetme2meat 27368 0.0 0.0 2558672 1800 s005 S+ 6:16PM 0:00.01 ./kamailio -l 192.168.1.117:5060 -eD
meetme2meat 27367 0.0 0.2 2549432 6864 s005 S+ 6:16PM 0:00.04 ./kamailio -l 192.168.1.117:5060 -eD
任何线索??
答案 0 :(得分:2)
即使在无分叉模式下,Kamailio也会创建一些额外的进程,因为它们在运行时需要,例如定时器进程通过UDP进行重传。换句话说,您无法获得单个流程。
您可以运行下一个命令来查看有关创建的进程类型的详细信息:
kamctl ps
答案 1 :(得分:0)
这是一个非常有用的 Kamailio 调试指南: https://topic.alibabacloud.com/a/opensipskamailio-gdb-code-debugging-method-detailed_8_8_30118342.html
为了使用调试器附加到 Kamailio 的 tcp 接收器进程,请使用以下命令:
gdb attach $(/usr/local/sbin/kamcmd -s unix:/var/run/kamailio/kam_ctl ps | grep 'tcp receiver'| awk '{print $1}')
PS:将你的 kamailio "/var/run/kamailio/kam_ctl" 的 unix 域套接字更改为你的。