
Ich habe ein Skript ( start_probing.sh
), /etc/init.d
das 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.sh
läuft alles normal. start_probing.sh
Ich warte eine Weile, bevor ich es ausführe, adapter_scan.sh
um sicherzustellen, dass die wlan1
Schnittstelle 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.txt
Datei 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.sh
ich ~/.profile
genau 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.