Apenas parte do script está sendo executada na inicialização

0

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.

    
por BbJug 20.07.2018 / 19:12

1 resposta

0

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.

    
por 20.07.2018 / 22:06

Tags