Como posso executar um script Perl automaticamente após o boot de um servidor Ubuntu?

3

Eu escrevi um script Perl que servirá como um daemon, então eu gostaria de deixar o sistema operacional (no meu caso, Ubuntu Linux) executar automaticamente o meu script Perl depois que ele foi inicializado.

Como posso fazer isso?

    
por HaiYuan Zhang 21.06.2010 / 12:24

2 respostas

3

Crie um wrapper de script de shell para seu script perl

#!/bin/sh - script.sh
# your perl program goes here

/bin/perl /path/to/foobar.pl

Certifique-se de ter dado permissão executável usando

  chmod +x script.sh

e execute o seguinte,

sudo update-rc.d script.sh defaults

Isso executará o script perl em cada inicialização.

    
por 21.06.2010 / 13:17
0

As coisas mudaram um pouco nos últimos 7 anos. No Ubuntu 16.04, o caminho para o perl é diferente. Além disso, você é obrigado a fornecer um monte de informações de configuração em seu / etc / init script .d / foobar.sh:

#!/bin/sh foobar.sh
### BEGIN INIT INFO
# Provides:          foobar
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: forbarsvr
# Description:       foobar daemon for widget serving
### END INIT INFO
sudo -u foobarusr perl /path/to/foobar.pl &

Esta forma de chamar o perl permite que você execute como um usuário (dando um domínio de segurança restrito) ao invés de root; para executar como root, remova o -u foobarusr . Se você estiver executando como um usuário não raiz, verifique se o usuário tem permissões sobre todos os recursos necessários, como o próprio script perl.

O & inicial dispara seu script perl como uma tarefa em andamento (até terminar); deamon-like se não terminar por qualquer motivo.

Faça seu executável foobar launcher:

sudo chmod +x /etc/init.d/foobar.sh

Adicione seu script na sequência de inicialização:

sudo update-rc.d foobar.sh defaults

Note que não há caminho fornecido para o script.

    
por 16.04.2017 / 16:39

Tags