Sólo una parte del script se ejecuta al inicio

Sólo una parte del script se ejecuta al inicio

Tengo un script ( start_probing.sh) /etc/init.dque se ejecuta correctamente al inicio, sin embargo, cuando llamo a otro script ( adapter_scan.sh) desde dentro, no se ejecuta. Sin embargo, cuando ejecuto manualmente start_probing.shtodo funciona normalmente. Espero start_probing.shun tiempo antes de ejecutar adapter_scan.shpara asegurarme de que la wlan1interfaz esté lista, aunque fue en vano. ¿Alguna sugerencia?

Aquí están los códigos para ambos 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

adaptador_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

El problema es que el ap_data.txtarchivo nunca se crea. ¿Qué me estoy perdiendo?

Actualizar Entonces parece que soy un tonto.EsteLa publicación me hizo darme cuenta de que ejecutar mi script al iniciar sesión (en lugar de al iniciar, lo que debería tomarse muy en serio) es un enfoque mucho más apropiado. Simplemente colocando sh .../adapter_scan.shen mi ~/.profilelogré exactamente lo que buscaba.

Respuesta1

Verifique que tenga el bit X (ejecución) configurado en el script que está intentando ejecutar para el privilegio de usuario que lo necesita.

información relacionada