CentOS - comandos em rc.local não são executados

1

Meu script /etc/rc.local é bem simples, assim.

#!/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

Eu não entendo porque o programa IPNHost c não está sendo executado neste caso. Ele funciona perfeitamente quando executo rc.local no prompt de comando, assim:

/etc/rc.local

Este é o CentOS 6.5.

UPDATE: Eu tentei adicionar instruções de depuração para ver se o rc.local foi realmente executado. Eu tenho todos os 4, test1, test2, test3, test4 no meu diretório raiz. O que está acontecendo aqui?

    
por lppier 12.02.2015 / 05:33

3 respostas

0

Descobriu-se que o programa IPNHost dependia de variáveis de ambiente de bibliotecas intel ipp para as quais o local não era especificado naquele momento durante a inicialização.

fez um script autoStart.sh

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

A fonte /opt/intel/bin/compilervars.sh intel64 carrega as variáveis de ambiente intel necessárias que especificam onde encontrar as bibliotecas carregadas dinamicamente.

No rc.local, eu chamei o autoStart.sh, isso funciona.

    
por 13.02.2015 / 03:49
4

Se você estiver usando o centOS 7, você também terá que habilitar o serviço rc-local no systemd.

    
por 12.02.2015 / 09:13
2

Devido ao systemd introduzido no CentOS 7, o /etc/rc.d/rc.local não habilitado por padrão, você deve tornar o /etc/rc.d/rc.local executável pela sua mão.

Basta executar

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

Resposta extraída de este post .

    
por 06.11.2016 / 05:14