我已经在我的覆盆子pi的rc.local文件中运行了一些脚本。我添加脚本的rc.local文件的结尾如下所示:
sh /home/pi/HAS_system/execute/CAM.sh &
sh /home/pi/HAS_system/execute/VID.sh &
sh /home/pi/HAS_system/camera/stopvidcam.sh &
sh /home/pi/HAS_system/camera/autostopvidcam.sh &
#sh /home/pi/HAS_system/execute/FS.sh &
sh /home/pi/HAS_system/execute/GS.sh &
sh /home/pi/HAS_system/execute/HTS.sh &
sh /home/pi/HAS_system/execute/MS.sh &
#sh /home/pi/HAS_system/execute/RS.sh &
#sh /home/pi/HAS_system/execute/SS.sh &
sh /home/pi/HAS_system/execute/WC.sh &
exit 0
这些脚本用于监视本地Web服务器的各种服务。我确信前四个脚本CAM.sh,VID.sh,stopvidcam.sh和autostopvidcam.sh正在通过网页访问它们并发现它们按预期工作。但是,以下脚本似乎无法正常工作,GS.sh,HTS.sh,MS.sh和WC.sh.这些脚本应该在适当的传感器触发器上发送邮件和推文。我可以从命令行手动运行这些:
sudo sh /home/pi/HAS_system/execute/MS.sh &
并且可以检查传感器触发器是否正常工作,但它们无法从rc.local运行。
我尝试使用
检查这些进程是否在后台运行ps aux | grep "/home/pi/HAS_system/execute/MS.sh"
并找到了这个结果:
root 592 0.2 0.1 1912 1112 ? S 17:04 0:09 sh /home/pi/HAS_system/execute/MS.sh
pi 30116 0.0 0.2 4280 1852 pts/0 S+ 18:07 0:00 grep --color=auto /home/pi/HAS_system/execute/MS.sh
第一项肯定会在启动时显示脚本的进程ID,但触发器不起作用。
触发器代码(MS.sh,GS.sh等)类似,编码为:
#!/bin/bash
dname=$(date +"%Y_%m_%d-%H_%M_%S")
code="MS"
while :
do
new=$(sudo python /home/pi/HAS_system/sensor_check/MScheck.py)
echo $new
old=$(sudo bash /home/pi/HAS_system/data/data_reader.sh /home/pi/HAS_system/data/sensor_data.ini $code)
if [ "$new" != "$old" ]
then
curl -d "dname=$dname&sid=$code&val=$new" http://localhost/devcalls/updatesensorpanel.php
sudo bash /home/pi/HAS_system/data/data_reader.sh /home/pi/HAS_system/data/sensor_data.ini $code $new
fi
if [ "$new" = "Motion" ]
then
sudo python3 /home/pi/HAS_system/comm/tweet.py $new
sudo python3 /home/pi/HAS_system/comm/mail.py $new
fi
done
这到底出了什么问题?