如果在相应目录下执行一个脚本报错,不妨试一试用全名。
当我执行一个shell脚本时,我:
sh iwinfo_echo
然后脚本就运行起来,完全没有问题。
按照下面这种自启动脚本的写法,我再次使用这种说法启动,
#!/bin/sh /etc/rc.common
START=99
STOP=98
i=1
start()
{
# echo start
while i=1
do
echo "ath0 是一个 STA"
sleep 1
done
}
stop()
{
iwps=$(pgrep /bin/sh)
for line in $iwps
do
kill $line #find the process status and kill it
done
}
sh iwinfo_echo
sh iwinfo_echo start
嗯,都不好使。
当我打算使其开机自启动时,我就:
/etc/init.d# ls
acd lldpd quagga
alsa log repacd
boot macsec rngd
boot-ftm mcproxy rpcd
cnss_diag mcsd rssiled
complexdone miniupnpd rssileds
cron multiwan rstp
ddns network shortcut-fe
dhcrelay4 odhcpd skb_recycler
dhcrelay6 openvpn ssid_steering
diag_socket_app powerctl sysctl
dnsmasq pppoe-relay sysfixtime
done pppoe-server sysntpd
dropbear qca-hostapd sysstat
firewall qca-iot system
ftm qca-nss-drv telnet
hyd qca-nss-ecm thermal
hyfi-bridging qca-nss-ipsec uhttpd
inetd qca-nss-mirred umount
ipsec qca-nss-ovpn wifi_fw_mount
iwinfo_echo qca-ssdk wsplcd
lbd qca-wpa-supplicant xl2tpd
led qcmbr
#也就是在/etc/init.d目录下能够看到我自己写的脚本
/etc/init.d# iwinfo_echo enable
他会提示
/bin/ash: iwinfo_echo: not found
原因是这个时候应该用完整地址:
/etc/init.d# /etc/init.d/iwinfo_echo enable
果然在rc.local里面可以看到新创建的快捷方式了,不过前面多了S99的字样,意思是这个脚本的启动优先级是99。
再之后reboot,再ps查看process status 就可以看到自己的S99iwinfo_echo已经运行起来了。
ps
........................................
2979 root 1436 S /bin/sh /etc/rc.common /etc/rc.d/S99iwinfo_echo boot
................................................