kill: 5656: os argumentos devem ser IDs de processo ou trabalho

0

Tendo redis-server ON (lançado com redis-server & ).

A execução deste comando em um terminal funciona perfeitamente:

kill -s SIGTERM "'pgrep redis-server'"

Mas em um script, ele envia a seguinte mensagem e não mata o processo:

myscript.sh: line 17: kill: 1448
1452: arguments must be process or job IDs

(se eu fizer isso: pgrep redis-server neste exemplo, ele me mostrará 1448 )

Meu script de origem completo:

#!/bin/bash

if [ -a "redis-server_must_be_ON" ]
then
  if [ "'redis-cli PING'" != "PONG" ]
  then
    redis-server &
    if [ "'redis-cli PING'" != "PONG" ]
    then
      echo "redis-server still not running while it should have been set on." >> /dev/stderr
      exit 1
    fi
  fi
else
  if [ "'redis-cli PING'" == "PONG" ]
  then
    kill -s SIGTERM "'pgrep redis-server'"
    if [ "'redis-cli PING'" == "PONG" ]
    then
      echo "redis-server still running while it should have been set off." >> /dev/stderr
      exit 1
    fi
  fi
fi

(Aqui, se eu substituir o pgrep redis-server por algum tipo de mascarade como pgrep bash1.sh , também funciona bem).

Meu script está correto, o que eu sinto falta?

    
por Hellfar 18.01.2017 / 14:41

0 respostas