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?