启动时仅执行部分脚本

启动时仅执行部分脚本

我有一个脚本 ( start_probing.sh),/etc/init.d它在启动时成功运行,但是,当我adapter_scan.sh从其中调用另一个脚本 ( ) 时,它却不运行。但是,当我手动运行时,start_probing.sh一切都正常运行。start_probing.sh我在执行之前等待了一段时间adapter_scan.sh以确保wlan1界面已准备就绪,但无济于事。有什么建议吗?

以下是两个脚本的代码:

开始探测

echo $(date) >> /home/pi/reboot.txt  
sleep 1m && watch -n 20 sudo /home/pi/adapter_scan.sh & PROC=$! ; sleep 120s ; KILL $PROC

适配器扫描工具

#!/bin/bash  
fname="ap_data.txt"
save_path="/home/pi/data/$fname"  
interface="wlan1"  

echo "[x] $(date):" >> $save_path  
sudo iwlist $interface scanning |\  
egrep "Signal level|ESSID" |\  
sed -e "s/\"ESSID://" |\  
sed 's/^.*Signal/Signal/' |\  
 paste -s -d' \n' |\  
  sed -e 's/\(Signal\|level=\)//g' |\  
   sed -e 's/^[ \tESSID:]*//' |\  
    sort >> $save_path  
     echo "~" >> $save_path  
      cat $save_path

问题是ap_data.txt文件从未创建。我遗漏了什么?

更新 如此看来我是个傻瓜。这篇文章让我意识到,在登录时执行脚本(而不是在启动时执行,这应该非常认真对待)是一种更合适的方法。只需将我的脚本放入sh .../adapter_scan.sh其中,~/.profile就可以完成我所追求的目标。

答案1

检查以确保在您尝试运行的脚本上已为需要该权限的用户设置了 X(执行)位。

相关内容