Chamando um script no desligamento da máquina [duplicado]

1

Eu quero chamar um script no desligamento da máquina e reiniciar. Eu escrevi código como

#! /bin/bash
#chkconfig: 0 6 1 1
#description: Description of the script
# processname: killfoo
# this script starts and stops foo

# Some things that run always
LOG_FILE="/tmp/killfoo.log"

log() { while IFS='' read -r line; do echo "$(date) $line" >> "$LOG_FILE"; done; };
exec > >(tee >(log))
# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Nothing to done"
    ;;

  stop)
    echo "Stopping script killfoo"
    pkill   -9 foo >> $LOG_FILE 2>&1

    ;;
  *)
    echo "Usage: /etc/init.d/killfoo {stop}"
    exit 1
    ;;
esac

exit 0

Eu criei o arquivo /etc/init.d/killfoo com permissão executável. Eu habilitei este script para o nível de execução 0,6.

chkconfig --add killfoo
chkconfig --level 6 killfoo on

Mas o script não está sendo executado na reinicialização da máquina. Qual poderia ser o problema?

    
por Vivek Goel 10.04.2013 / 14:00

2 respostas

1

Eu não posso verificar, mas se chkconfig (8) for acreditado, você tem um erro de sintaxe sua linha #chkconfig: . Aparentemente, deveria ser:

# chkconfig: 06 1 1

para uma prioridade de início e parada de ambos os 1 nos níveis de execução 0 e 6.

A execução de chkconfig --list killfoo deve informar se o script será realmente executado ao entrar / sair dos runlevels relevantes. Observe que uma prioridade de 1 pode colidir com outros scripts que executam ações de baixo nível; Eu tentaria 50 como ponto de partida, a menos que houvesse motivos específicos para seguir com outros valores.

    
por 10.04.2013 / 14:27
-1
  1. Remova o espaço depois de "!"
  2. Use / bin / sh em vez de / bin / bash
por 10.04.2013 / 15:22

Tags