redis-server (запускается с redis-server &).

Выполнение этой команды в терминале работает отлично:

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

Но в скрипте он выводит следующее сообщение и не останавливает процесс:

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

(если я сделаю: pgrep redis-server в этом примере это выдаст мне 1448)

Мой полный исходный скрипт:

#!/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

(Здесь, если я заменю pgrep redis-server каким-нибудь видом туши, такой как pgrep bash1.sh он также будет работать нормально).

Мой сценарий правильный, что мне не хватает?

0