Execução de script Bash por meio de rc.local

1

Desculpe pela pergunta newb, mas eu não sou um roteirista strong. Eu tenho um script bash simples que eu criei que funciona perfeitamente bem quando executado manualmente. Além disso, se eu executar "/etc/rc.local" manualmente, ele executará o script completamente! Meu problema é que o rc.local do boot não executará o script inteiro e eu estou tendo problemas para determinar o porquê.

Aqui está o script:

#!/bin/bash

# Retrieve instance ID from metadata
GET http://169.254.169.254/latest/meta-data/local-ipv4 > /metadata

# Replace Hostname in zabbix.conf with instance ID from metadata
sudo sed -i "s/td1wb-b01/$(cat metadata)/g" /etc/zabbix/zabbix_agentd.conf

# Replace Hostname with instance ID from metadata
sudo hostname $(cat metadata)
sudo sed -i "s/web2/$(cat metadata)/g" /etc/sysconfig/network

# Restart the zabbix agent to register
sudo service zabbix-agent restart

exit 0

Parece começar a ser executado, pois vejo o arquivo / metadata aparecer. Depois dessa primeira linha, nada mais está sendo executado. Qualquer ajuda é muito apreciada!

Obrigado

    
por Nick Hatfield 02.10.2013 / 03:40

2 respostas

2

Seu script chama "sudo" para obter privilégios extras. O sudo requer que você efetue login de forma interativa ou que o usuário que o chamou recentemente tenha usado o sudo interativamente. Remova o sudo e você deve ficar bem contanto que o próprio script seja executado como root.

    
por 02.10.2013 / 03:49
1

Você deve remover o sudo , rc.local é executado pela raiz mesmo assim.

    
por 02.10.2013 / 03:45

Tags