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이 실제로 실행되는지 확인하기 위해 디버그 문을 추가해 보았습니다. 내 루트 디렉터리에는 test1, test2, test3, test4라는 4개가 모두 있습니다. 여기서 무슨 일이 일어나고 있는 걸까요?

답변1

centOS 7을 사용하는 경우 systemd에서 rc-local 서비스도 활성화해야 합니다.

답변2

systemd가 CentOS 7에 도입되었으므로 /etc/rc.d/rc.local은 기본적으로 활성화되지 않으며 수동으로 /etc/rc.d/rc.local을 실행 가능하게 만들어야 합니다.

빨리 달려

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

대답은 다음에서 가져옵니다.이 게시물.

답변3

IPNHost 프로그램은 인텔 ipp 라이브러리 환경 변수에 의존하며 시작 시 위치가 지정되지 않는 것으로 나타났습니다.

autoStart.sh 스크립트를 작성했습니다.

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

소스 /opt/intel/bin/compilervars.sh intel64는 동적으로 로드된 라이브러리를 찾을 위치를 지정하는 필수 인텔 환경 변수를 로드합니다.

그런 다음 rc.local에서 autoStart.sh를 호출하면 작동합니다.

관련 정보