Browse Source

kamctl: added pstrap command

- use ps to get list of PIDs for Kamailio instance, instead of RPC
core.psx
Daniel-Constantin Mierla 5 years ago
parent
commit
97ec85559f
2 changed files with 36 additions and 2 deletions
  1. 34 1
      utils/kamctl/kamctl
  2. 2 1
      utils/kamctl/kamctl.base

+ 34 - 1
utils/kamctl/kamctl

@@ -2909,7 +2909,7 @@ extcmd() {
 }
 }
 
 
 ##### ================================================ #####
 ##### ================================================ #####
-### trap with gdb kamailio processes
+### trap with gdb kamailio processes using RPC core.psx
 #
 #
 
 
 kamailio_trap() {
 kamailio_trap() {
@@ -2935,6 +2935,35 @@ kamailio_trap() {
 	echo "."
 	echo "."
 }
 }
 
 
+##### ================================================ #####
+### trap with gdb kamailio processes using ps command
+#
+
+kamailio_pstrap() {
+	if [ -z "$GDB" ] ; then
+		merr "'gdb' tool not found: set GDB variable to correct tool path"
+		exit
+	fi
+	DATE=`/bin/date +%Y%m%d_%H%M%S`
+	LOG_FILE=/tmp/gdb_kamailio_${DATE}.txt
+	minfo "Trap file: $LOG_FILE"
+	ps axw | grep kamailio | grep -v grep | sort > $LOG_FILE
+	echo "" >> $LOG_FILE
+	echo "" >> $LOG_FILE
+	echo -n "Trapping Kamailio with gdb: "
+	PID_TIMESTAMP_VECTOR=`ps axw | grep kamailio | grep -v grep | sort | awk '{print $1}'`
+	for pid in $PID_TIMESTAMP_VECTOR
+	do
+		echo -n "."
+		PID=`echo $pid | cut -d '-' -f 1`
+		echo "" >> $LOG_FILE
+		echo "---start $PID -----------------------------------------------------" >> $LOG_FILE
+		$GDB kamailio $PID -batch --eval-command="bt full" >> $LOG_FILE 2>&1
+		echo "---end $PID -------------------------------------------------------" >> $LOG_FILE
+	done
+	echo "."
+}
+
 #
 #
 ##### ================================================ #####
 ##### ================================================ #####
 ### main command switch
 ### main command switch
@@ -3147,6 +3176,10 @@ case $1 in
 		kamailio_trap
 		kamailio_trap
 		;;
 		;;
 
 
+	pstrap)
+		kamailio_pstrap
+		;;
+
 	start)
 	start)
 		kamailio_start
 		kamailio_start
 		;;
 		;;

+ 2 - 1
utils/kamctl/kamctl.base

@@ -368,7 +368,8 @@ usage_base() {
 	mecho " -- command 'start|stop|restart|trap'"
 	mecho " -- command 'start|stop|restart|trap'"
 	echo
 	echo
 cat <<EOF
 cat <<EOF
- trap ............................... trap with gdb Kamailio processes
+ trap ............................... trap with gdb Kamailio processes using RPC
+ pstrap ............................. trap with gdb Kamailio processes using ps
  restart ............................ restart Kamailio
  restart ............................ restart Kamailio
  start .............................. start Kamailio
  start .............................. start Kamailio
  stop ............................... stop Kamailio
  stop ............................... stop Kamailio