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
он также будет работать нормально).
Мой сценарий правильный, что мне не хватает?