From 6bc3a3ad3c114b592abd22d4fc192274b55b0229 Mon Sep 17 00:00:00 2001 From: Tangchao <735056338@qq.com> Date: Thu, 19 Oct 2023 15:44:17 +0800 Subject: [PATCH] Monitor the kernel logs and kill the psdk if the usb network card is disconnected. --- finger_daemon.sh | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/finger_daemon.sh b/finger_daemon.sh index 321f118..ac172c9 100755 --- a/finger_daemon.sh +++ b/finger_daemon.sh @@ -13,19 +13,23 @@ # #sleep 60s #rockpi need sleep 180s when start because if not wired lan which psdk's image transmission use don't work normal. + +rowNumberDisconnect=0 + while true do - echo "current time is " $(date) +# echo "current time is " $(date) - echo "the current directory is " $(pwd) +# echo "the current directory is " $(pwd) LogDirectory=/media/nvme/300TC/programRunLog if [ ! -e $LogDirectory ]; then sudo mkdir -p $LogDirectory else - echo directory $LogDirectory exist! + #echo directory $LogDirectory exist! + delete=2 fi @@ -34,7 +38,8 @@ do if [ ! -e djiLog ]; then sudo mkdir djiLog else - echo directory "djiLog" exist! +# echo directory "djiLog" exist! + delete=2 fi #python /home/pi/tc_ShellScripts/test.py @@ -48,7 +53,7 @@ do # sudo /home/300tc/projects/psdk/psdk_demo &> $LogDirectory"/djiLog/"$psdkLogFileName & cd /home/300tc/projects_source/Payload-SDK/samples/sample_c/platform/linux/manifold2/build/bin - sudo /home/300tc/projects_source/Payload-SDK/samples/sample_c/platform/linux/manifold2/build/bin/dji_300tc & + sudo /home/300tc/projects_source/Payload-SDK/samples/sample_c/platform/linux/manifold2/build/bin/dji_300tc &> $LogDirectory"/djiLog/"$psdkLogFileName & runtimes=$(head -n +1 $LogDirectory"/djiLog/Number_of_runs.txt") echo $runtimes @@ -59,7 +64,19 @@ do echo "Now, start run dji program!" else - echo "Dji program already runing!" +# echo "Dji program already runing!" + tmp1=$(dmesg | grep -n disconnect | grep "usb 1-1.1" | awk '{match($0, /^[0-9]+/); print substr($0, RSTART, RLENGTH)}' | awk 'BEGIN {max = rowNumberDisconnect} {if ($1 > max) max = $1} END {print max}') + if [ $tmp1 -gt $rowNumberDisconnect ]; then + echo "new disconnect! "$rowNumberDisconnect"\t"$tmp1 + + dmesg -T &> $LogDirectory"/djiLog/"kernalLog_$(date +%Y%m%d-%H%M%S).txt + + rowNumberDisconnect=$tmp1 + + kill -9 $(ps -ef | grep dji_300tc | grep -v grep | awk '{print $2}') + else + echo "no disconnect!" + fi fi @@ -92,7 +109,8 @@ do if [ ! -e hyperspectralLog ]; then sudo mkdir hyperspectralLog else - echo directory "hyperspectralLog" exist! +# echo directory "hyperspectralLog" exist! + delete=2 fi @@ -107,7 +125,8 @@ do echo "Now, start run hyperspectral program!" else - echo "HyperspectralLog program already runing!" +# echo "HyperspectralLog program already runing!" + delete=2 fi sleep 1s