Ocorreu um problema ao usar o Upstart para iniciar o Redis como usuário redis

0

Estou tentando iniciar o redis-server como usuário (chamado redis) via Upstart. Meu /etc/init/redis-server.conf tem esta aparência:

description "redis server"

start on runlevel [23]
stop on shutdown

exec sudo -u redis /usr/local/bin/redis-server /var/lib/redis/redis.conf

Parece bom, certo? Eu começo o servidor-redis usando

$start redis-server
redis-server start/running, process 16808
$redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
$ps ax | grep ps 168
16810  tty1    R+     0:00 ps ax
16811  tty1    S+     0:00 grep 168

Então o redis-server definitivamente não está rodando. Vamos tentar executar o comando Upstart com a mão, devemos?

exec sudo -u redis /usr/local/bin/redis-server /var/lib/redis/redis.conf
[16852] 19 Jun 10:37:21 # Can't chdir to './': Permission denied
Connection to 10.19.2.94 closed.

E então eu me desconecto. Eu estou em uma perda. Alguma idéia?

    
por Chris 19.06.2012 / 16:34

2 respostas

0

Ok, então o problema foi causado pelo fato de o usuário do redis não conseguir executar o binário do servidor de redis a partir de / home / root. Algumas pesquisas revelam que muitas pessoas tiveram problemas com o Upstart no CentOS. A solução final foi usar este script init.d do Redis .

    
por 20.06.2012 / 14:45
1

Você está sendo desconectado porque, quando o exec é complementado, o shell existe. Isso é verdadeiro se o comando tiver êxito ou falhar (tente exec echo hello , por exemplo). Então, para evitar o logout, use isso:

sudo -u redis /usr/local/bin/redis-server /var/lib/redis/redis.conf

Isso pode não resolver seu problema, mas fará com que seu teste seja mais rápido.

    
por 19.06.2012 / 17:14