CentOS - rc.local 中的命令未运行

CentOS - rc.local 中的命令未运行

我的 /etc/rc.local 脚本非常简单,就像这样。

#!/bin/sh

touch /root/test1
touch /var/lock/subsys/local

touch /root/test2
modprobe -r ftdi_sio
modprobe ftdi_sio vendor=0x0403 product=0x6015

touch /root/test3
cd /root/IPNHost
./IPNHost
touch /root/test4

我不明白为什么 IPNHost c 程序在这种情况下没有运行。当我从命令提示符运行 rc.local 时,它运行得很好,如下所示:

/etc/rc.local

这是 CentOS 6.5。

更新:我尝试添加调试语句来查看 rc.local 是否真正执行。我的根目录中有所有 4 个,test1、test2、test3、test4。这里发生了什么事?

答案1

如果您使用的是 centOS 7,您还必须在 systemd 中启用 rc-local 服务。

答案2

由于CentOS 7中引入了systemd,默认情况下/etc/rc.d/rc.local未启用,您应该手动使/etc/rc.d/rc.local可执行。

赶紧跑

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

答案摘自这个帖子

答案3

事实证明,IPNHost 程序依赖于 intel ipp 库环境变量,而在启动期间未指定该位置。

做了一个脚本autoStart.sh

#!/bin/bash
source /opt/intel/bin/compilervars.sh intel64
cd /root/IPNHost
./IPNHost

源 /opt/intel/bin/compilervars.sh intel64 加载所需的 intel 环境变量,这些变量指定在何处查找动态加载的库。

然后在 rc.local 中调用 autoStart.sh,这有效。

相关内容