Asterisk fork itself during it running in the continues being called

When I using the asterisk in the sip module and I use eight line to call contiune, I meet a issue the asterisk will fork one or more processes by the initial process. However, I delete all the fork and execl/execv the issue still exist. The following is the log:

ps | grep asterisk

10689 telecoma 8516 S /usr/sbin/asterisk
13077 telecoma 660 S grep asterisk
25629 telecoma 2864 R /usr/sbin/asterisk
25633 telecoma 2864 R /usr/sbin/asterisk

cat /proc/25629/status

Name: asterisk
State: R (running)
Tgid: 25629
Ngid: 0
Pid: 25629
PPid: 10689
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 256
VmPeak: 52188 kB
VmSize: 52188 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 2864 kB
VmRSS: 2864 kB
VmData: 42664 kB
VmStk: 136 kB
VmExe: 1592 kB
VmLib: 5196 kB
VmPTE: 48 kB
VmSwap: 0 kB
Threads: 1
SigQ: 0/1671
SigPnd: 00000000000000000000000000000000
ShdPnd: 00000000000000000000000000000000
SigBlk: 00000000000000000000000000085003
SigIgn: 00000000000000000000000000001004
SigCgt: 000000000000000000000001c013e003
CapInh: 0000000000000000
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff
CapBnd: 0000003fffffffff
Cpus_allowed: 2
Cpus_allowed_list: 1
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 0
nonvoluntary_ctxt_switches: 3853227

From the log ,you will look at the pid 25629 the ppid is the 10689。
So I want to kown asterisk how to fork itself and why?

Why does it matter?

Which modules are you using?

What does a backtrace indicate that the process is running?

In the situation, the phone cann’t call contiunely and may cause the relevant drivers working normally.
The modules which I use like the following:
tc*CLI> module show
Module Description Use Count String handling dialplan functions 0 Simplified Message Desk Interface (SMDI) 0 Database Access Functions 0 Dialing Application 0 Executes dialplan applications 0 Extension Macros 0 MeetMe conference bridge 0 Read Variable Application 0 Hangs up the requested channel 0 Dialplan subroutines (Gosub, Return, etc 0 Generic System() application 0 Transfers a caller to another extension 0 SQLite3 Custom CDR Module 0 Agent Proxy Channel 0 DAHDI Telephony 0 IP Multimedia Subsystem (IMS) 0 Local Proxy Channel (Note: used internal 0 Session Initiation Protocol (SIP) 0 A-law Coder/Decoder 0 ITU G.722-64kbps G722 Transcoder 0 mu-Law Coder/Decoder 0 Caller ID related dialplan functions 0 Call Detail Record (CDR) dialplan functi 0 Check Application 0 Database (astdb) related dialplan functi 0 Variable dialplan functions 0 Charset conversions 0 Logical dialplan functions 0 Checks if Asterisk module is loaded in m 0 URI encode/decode dialplan functions 0 Text Extension Configuration 0
31 modules loaded

You can see this:
10689 telecoma 8516 S /usr/sbin/asterisk
13077 telecoma 660 S grep asterisk
25629 telecoma 2864 R /usr/sbin/asterisk
25633 telecoma 2864 R /usr/sbin/asterisk
From the log ,we can see the father process is int the sleep satstus, and the two children processes are in the running status.

I also change the main.c when the asterisk has been running ,another asterisk process cann’t been running the same time. And I delete the all for,system,clone and the family of exec functions,but the system also has the same issue.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.