Ich habe ein Skript ( start_probing.sh), in /etc/init.ddem beim Start erfolgreich ausgeführt wird, wenn ich jedoch ein anderes Skript ( adapter_scan.sh) aufrufe, das nicht ausgeführt wird. Wenn ich manuell laufe start_probing.sh, läuft alles normal. In start_probing.shIch warte einige Zeit vor der Ausführung, adapter_scan.shum sicherzustellen, dass die wlan1Schnittstelle bereit ist, jedoch 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 vermisse ich?
Update
Ich bin also ein Idiot. Durch diesen Beitrag wurde mir klar, dass die Ausführung meines Skripts beim Anmelden (und nicht beim Starten, was sehr ernst genommen werden sollte) ein weitaus angemessenerer Ansatz ist. Einfach sh .../adapter_scan.shin meine ~/.profilegeleistete genau das, was ich wollte.
/home/pi/Verzeichnis scheint nicht das Problem zu sein, da die reboot.txt-Datei das richtige $ (Datum) enthält. Eine Sache, die ich jedoch nicht erwähnt habe, ist, dass ich den Softlink nach start_probing.shinnen erstellt habe /etc/init.d/rc3.d. Könnte sich dies auf das Skript auswirken?
/home/pi/data/es Wird/homezum Zeitpunkt der Skriptausführung gemountet? Muss/home/pi/entschlüsselt werden? Sind Skripte/etc/init.dsollen werden durch laufensystemd, oder was?