centos7 开机/etc/rc.local 不执行的问题及部分命令执行不成功

http://linux.it.net.cn/CentOS/CentosBug/2015/0209/13015.html


http://blog.csdn.net/lucky_greenegg/article/details/51993500

centos7 开机/etc/rc.local 不执行的问题及部分命令执行不成功


 最近发现centos7 的/etc/rc.local不会开机执行,于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In constrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

翻译:

#这个文件是为了兼容性的问题而添加的。
#
#强烈建议创建自己的systemd服务或udev规则来在开机时运行脚本而不是使用这个文件。
#
#与以前的版本引导时的并行执行相比较,这个脚本将不会在其他所有的服务后执行。
#
#请记住,你必须执行“chmod +x /etc/rc.d/rc.local”来确保确保这个脚本在引导时执行。

于是我有确认了下/etc/rc.local的权限

[root@localhost ~] # ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 8月  12 06:09  /etc/rc . local  -> rc.d /rc . local
[root@localhost ~] # ll /etc/rc.d/rc.local
-rw-r--r--. 1 root root 477 6月  10 13:35  /etc/rc .d /rc . local

/etc/rc.d/rc.local没有执行权限,于是按说明的内容执行

 
chmod  +x  /etc/rc .d /rc . local

重启后发现/etc/rc.local能够执行了。

看样子是版本的变迁,/etc/rc.local /etc/rc.d/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

为了在开机启动时执行,部分命令需要使用绝对路径






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值