Beim Start wird nur ein Teil des Skripts ausgeführt

Beim Start wird nur ein Teil des Skripts ausgeführt

Ich habe ein Skript ( start_probing.sh), /etc/init.ddas beim Start erfolgreich ausgeführt wird, aber wenn ich ein anderes Skript ( adapter_scan.sh) darin aufrufe, wird es nicht ausgeführt. Wenn ich es jedoch manuell ausführe, start_probing.shläuft alles normal. start_probing.shIch warte eine Weile, bevor ich es ausführe, adapter_scan.shum sicherzustellen, dass die wlan1Schnittstelle bereit ist, aber ohne Erfolg. Irgendwelche Vorschläge?

Hier sind die Codes für beide Skripte:

start_probing.sh:

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

adapter_scan.sh:

#!/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

Das Problem ist, dass die ap_data.txtDatei nie erstellt wird. Was übersehe ich?

Aktualisieren Also scheine ich ein Narr zu sein.DasDurch meinen Beitrag wurde mir klar, dass die Ausführung meines Skripts beim Anmelden (und nicht beim Start, was sehr ernst genommen werden sollte) ein weitaus geeigneterer Ansatz ist. Durch einfaches Einfügen habe sh .../adapter_scan.shich ~/.profilegenau das erreicht, wonach ich gesucht habe.

Antwort1

Stellen Sie sicher, dass das X-Bit (Ausführen) für das Skript, das Sie ausführen möchten, für die erforderliche Benutzerberechtigung gesetzt ist.

verwandte Informationen