Bem, a maneira mais simples de executar esse comando na inicialização do sistema é:
echo 'su -l hive -c "nohup hive --service metastore > /var/log/hive/hive.out 2> /var/log/hive/hive.log &"' >> /etc/rc.local
Em termos de /etc/init.d
, a resposta é ... depende. Com o sysvinit, o /etc/init.d/hive só precisa ficar assim:
#!/bin/bash
su -l hive -c "nohup hive --service metastore > /var/log/hive/hive.out 2> /var/log/hive/hive.log &"
Com um simples chmod 755 /etc/init.d/hive
, pode-se adicionar esse script à inicialização do sistema adicionando alguns links:
cd /etc/rc3.d
ln -s ../init.d/hive S99hive
cd /etc/rc5.d
ln -s ../init.d/hive S99hive
Agora, se preferirmos usar chkconfig
para iniciar o serviço, teremos o script /etc/init.d/hive
da seguinte forma:
#!/bin/bash
# chkconfig: 2345 99 99
# Description: hive service
su -l hive -c "nohup hive --service metastore > /var/log/hive/hive.out 2> /var/log/hive/hive.log &"
Em seguida, para adicioná-lo no momento da inicialização do sistema:
chkconfig --add hive
Se estiver usando uma distro com um init diferente, como upstart ou systemd, a maneira de obter um serviço para iniciar na inicialização do sistema é diferente. Por exemplo, systemd: link