nome do script dentro de um script de inicialização

1

Eu tenho um script /etc/init.d/startup , onde faço o seguinte:

  • criando um arquivo PID que deve se parecer com: /var/run/**startup**.pid
  • executando uma tela de um processo java, portanto, gostaria de criar a tela com o nome startup (como este caminho -dmS startup "para um script"

Eu não tenho nenhum problema com nenhum dos itens acima enquanto o servidor está rodando, mas quando ele é inicializado, ele cria o arquivo PID e a tela com nomes incorretos como este:

/var/run/**S92startup**.pid

2058.**S92startup** (11/10/2014 03:56:31 PM)    (Detached)

Como posso atribuir o nome do script durante a inicialização? (não o nome do symlink em /etc/rc2.d/ )

Neste momento, o meu script é assim no início e é assim que recebo o nome do script

SCRNAME=${0##*/}

DAEMON="screen -DmS $SCRNAME /srv/startup/scripts/gprs.sh"

PIDFILE=/var/run/$SCRNAME.pid

PS: está funcionando quando estou no servidor e executo o "início de inicialização do serviço", mas não quando estou inicializando.

    
por mk9 11.11.2014 / 00:45

1 resposta

0

O problema é que quando o script é invocado por um symlink, $0 está definido para o link simbólico e não para o script original.

Você pode fazer isso:

SCRNAME=$(readlink "$0" || echo $0)
SCRNAME=${SCRNAME##*/}

O readlink imprimirá o destino do link se a origem for um link.

    
por 27.12.2014 / 12:03