У меня есть скрипт (start_probing.sh
) в /etc/init.d
который успешно запускается при запуске, однако при вызове другого скрипта (adapter_scan.sh
) изнутри он не запускается. Хотя, когда я вручную запускаю start_probing.sh
все работает нормально. В start_probing.sh
я подожду некоторое время, прежде чем выполнить adapter_scan.sh
чтобы убедиться, что интерфейс wlan1
готов, хотя безрезультатно. Какие-либо предложения?
Вот коды для обоих скриптов:
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
Проблема в том, что файл ap_data.txt
никогда не создается. Что мне не хватает?
Обновление Так что, кажется, я дурак. Этот пост заставил меня понять, что выполнение моего скрипта при входе в систему (а не при запуске, к которому следует относиться серьезно), является гораздо более подходящим подходом. Просто поместив sh .../adapter_scan.sh
в мой ~/.profile
, я получил именно то, что хотел.