init.d script para filtrar a saída do comando e enviar para o log

0

Desejo registrar a stdout de /home/michael/client , mas desejo remover linhas contendo vários textos. Como isso é feito? Abaixo está o que eu tentei. Obrigado

SCRIPT=/home/michael/client
RUNAS=michael
PIDFILE=/var/run/client.pid
LOGFILE=/var/log/client.log
PROG="Client Interface"

start() {
  if [ -f "$PIDFILE" ] && kill -0 $(cat "$PIDFILE"); then
    echo "$PROG already running" >&2
    return 1
  fi
  echo "Starting $PROG…" >&2
  local CMD="$SCRIPT   >&3 2>&1 & echo \$!"
  #local CMD="$SCRIPT  | grep -v 'Non-block' | grep -v 'Connecting with ssl...' >&3 2>&1 & echo \$!"
  cd 'dirname $SCRIPT'
  su -c "$CMD" $RUNAS  3>>"$LOGFILE" >"$PIDFILE"
  #su -c "$CMD" $RUNAS  | grep -v "Non-block" | grep -v "Connecting with ssl..." 3>> "$LOGFILE" >"$PIDFILE"
  #su -c "$CMD" $RUNAS  3>> grep -v "Non-block" | grep -v "Connecting with ssl..." | "$LOGFILE" >"$PIDFILE"
  echo "$PROG started" >&2
}
    
por user1032531 30.06.2017 / 15:27

1 resposta

0

"divide et impera"

  1. você consegue escrever um script bash simples para realizar sua tarefa?

  2. tente com su

  3. tente com nohup

  4. finalmente tente executar como um script init.d

por 30.06.2017 / 19:57