I tested the stop issue using the script "sh kamctl restart" with several times
and it can be reproduced.
In my version which has changes in codes, it printed like this:
```
mv7:/tmp/kamailio/sbin# sh kamctl restart
\E[37;33mINFO: Stopping Kamailio :
\E[37;33mINFO: stopped
\E[37;33mINFO: Starting Kamailio :
23370 XXX 0:00 ./kamailio -P /var/run/kamailio.pid -f
/tmp/kamailio/etc/kamailio//kamailio.cfg
23371 XXX 0:00 ./kamailio -P /var/run/kamailio.pid -f
/tmp/kamailio/etc/kamailio//kamailio.cfg
23478 XXX 0:00 /bin/egrep kamailio
-rw-r--r-- 1 XXX XXX 6 Feb 15 16:14 /var/run/kamailio.pid
\E[37;33mINFO: PID file exists (/var/run/kamailio.pid)! Kamailio already running?
```
The children processes above then terminated after a few seconds later,
but the /var/run/kamailio.pid (may be or not)was still there,
I had to remove it by myself to make the restart work.
And I also tried to build kamailio with the stock version - with just a few changes to
make compiling and execution work, following is what I've done with it:
1. **build the config.mak for ARM**
make cfg include_modules="db_sqlite tls" mode=debug ARCH=armv41
CPU=cortex-a8 PREFIX=/tmp/kamailio
2. **modify the config.mak**
CC= /usr/gcc/bin/arm-marvell-linux-gnueabi-gcc
LD= /usr/gcc/bin/arm-marvell-linux-gnueabi-gcc
MKDEP= /usr/gcc/bin/arm-marvell-linux-gnueabi-gcc -MM -MG
and remove -Wcast-align
3. **make all**
dbase.h:29:21: fatal error: sqlite3.h: No such file or directory
=> I add sqlite3.h in the modules/db_sqlite/ and change the db_sqlite.h
//#include \<sqlite3.h\>
#include "sqlite3.h"
/usr/bin/ld: cannot find -lsqlite3
=> so I put the libsqlite3.so in the modules/db_sqlite and change the Makefile in
the same directory
#LIBS= -L$(LOCALBASE)/lib -lsqlite3
LIBS= -L./ -lsqlite3
After testing with this version, the error still occurs.
I check the unfinished children process by attaching with gdb, both two versions show the
same result:
```
#0 0x400650b8 in wait () from /lib/libpthread.so.0
#1 0x000be6f0 in shutdown_children (sig=15, show_status=1) at main.c:708
#2 0x000bf288 in handle_sigs () at main.c:741
#3 0x000ca9bc in main_loop () at main.c:1757
#4 0x000d0830 in main (argc=5, argv=0xbeb82c94) at main.c:2581
```
```
#0 0x40111a04 in __lll_lock_wait () from /lib/libpthread.so.0
#1 0x4010c0b8 in pthread_mutex_lock () from /lib/libpthread.so.0
#2 0x000bc7e0 in cfg_update_local (no_cbs=1) at cfg/cfg_struct.h:339
#3 0x000c21a4 in sig_usr (signo=15) at main.c:857
#4 <signal handler called>
#5 0x40112450 in recvfrom () from /lib/libpthread.so.0
#6 0x00265848 in udp_rcv_loop () at udp_server.c:446
#7 0x000c90a0 in main_loop () at main.c:1629
#8 0x000d0830 in main (argc=5, argv=0xbee68c94) at main.c:2581
```
or
```
#0 0x4012aa04 in __lll_lock_wait () from /lib/libpthread.so.0
#1 0x401250b8 in pthread_mutex_lock () from /lib/libpthread.so.0
#2 0x000bc7e0 in cfg_update_local (no_cbs=1) at cfg/cfg_struct.h:339
#3 0x000c21a4 in sig_usr (signo=15) at main.c:857
#4 <signal handler called>
#5 0x4026fc5c in epoll_wait () from /lib/libc.so.6
#6 0x4109fc14 in io_wait_loop_epoll (h=0x410c9898, t=10, repeat=0) at
../../io_wait.h:1042
#7 0x410a4fc0 in io_listen_loop (fd_no=1, cs_lst=0x4ff960) at io_listener.c:292
#8 0x4107881c in mod_child (rank=0) at ctl.c:333
#9 0x001d83b0 in init_mod_child (m=0x403067c8, rank=0) at sr_module.c:921
#10 0x001d8090 in init_mod_child (m=0x40306ae0, rank=0) at sr_module.c:918
#11 0x001d8090 in init_mod_child (m=0x403078b8, rank=0) at sr_module.c:918
#12 0x001d8090 in init_mod_child (m=0x40307bd8, rank=0) at sr_module.c:918
#13 0x001d8770 in init_child (rank=0) at sr_module.c:947
#14 0x000c9b2c in main_loop () at main.c:1706
#15 0x000d0830 in main (argc=5, argv=0xbe8d3c94) at main.c:2581
```
Any ideas??
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/466#issuecomment-184139851