/etc/rc.d/rc.local ,执行到sh /xxx/bin/startup.sh失败

图片说明

 sh ${PORT_MAP[$PORT]}/bin/startup.sh >/dev/null && status="success" || status="failure"

直接执行脚本文件,或者存放在cron里面定时执行都是成功的,但是把该脚本放在开机执行 /etc/rc.local 里面执行到该语句返回的状态总是失败.求解

在linux下,如需添加随系统启动而自动运行的服务,只需在/etc/rc.d/rc.local 脚本文件中添加即可。
但是遇到一个问题是脚本开机后在terminal下可以正常运行,放在/etc/rc.d/rc.local中没有正常运行或者执行失败
其运行的命令或程序不带路径,如脚本中的命令如下
java -cp /opt/gpu/lib/activation-1.1.jar
在系统执行这些命令时将报错,无法正常执行!究其原因: 由于在执行rc.local脚本时,PATH环境变量未全部初始化,需在执行/etc/profile 后才被添加到环境变量PATH中。
/usr/local/java/jdk1.7.0_79/bin/java -cp /opt/gpu/lib/activation-1.1.jar
为了在开机启动时执行,部分命令需要使用绝对路径。

请看这片文章希望能帮你解决问题 :http://blog.csdn.net/qq_35697313/article/details/78803108

开机的时候是不是系统服务相关还没有启动好。最好是延时一会执行

自己找到问题了,谢谢各位亲.

你范了一个低级错误,{} 是不能执行的,应该用()

sh ${PORT_MAP[$PORT]}/bin/startup.sh >/dev/null && status="success" || status="failure" 这一句是有问题的语句