Verifique se você tem o bit X (execute) definido no script que está tentando executar para o privilégio de usuário que precisa dele.
Eu tenho um script ( start_probing.sh
) em /etc/init.d
que é executado com êxito na inicialização, no entanto, quando eu chamo outro script ( adapter_scan.sh
) de dentro ele não é executado. Porém, quando eu executo manualmente start_probing.sh
, tudo é executado normalmente. Em start_probing.sh
, aguardo algum tempo antes de executar adapter_scan.sh
para garantir que a interface wlan1
esteja pronta, embora sem sucesso. Alguma sugestão?
Aqui estão os códigos para os dois scripts:
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
O problema é que o arquivo ap_data.txt
nunca é criado. O que estou perdendo?
Atualizar
Então parece que sou um tolo. Este post me fez perceber que ter meu script executando no login (em vez de em startup que deve ser levada muito a sério) é uma abordagem muito mais apropriada. A simples colocação de sh .../adapter_scan.sh
no meu ~/.profile
realizou exatamente o que eu procurava.
Verifique se você tem o bit X (execute) definido no script que está tentando executar para o privilégio de usuário que precisa dele.
Tags boot