domingo, julho 07, 2013

Adicionando software como serviço no Ubuntu Linux

Precisando adicionar um serviço no Ubuntu ou Lubuntu?

Antes de qualquer coisa crie um script shell que inicializa o serviço. Esse script deve ter funções mínimas de start e stop e deve ser salvo no diretório /etc/init.d. Abaixo tem um exemplo mínimo.

#! /bin/sh
case "$1" in
    start)
        echo "Starting my service";
        /path/to/my/script/startup.sh
    ;;
    stop)
        echo "Stopping my service";
        /path/to/my/script/shutdown.sh
    ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac
exit 0

Existem, basicamente, duas formas de adicionar o software como serviço:
  1. Manual
  2. Automática

Manual
Altere o arquivo /etc/rc.local e adicione a chamada para o script shell criado.
Exemplo:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/etc/init.d/foo start
exit 0

Automática
Execute o comando update-rc.d informando o serviço que deverá ser adicionado aos run levels.

sudo update-rc.d foo defaults

Pronto! O serviço está configurado e a cada boot ele será automaticamente iniciado.