部署 crontab 没有执行 rackup 的权限?

liguangsong · 2015年08月28日 · 最后由 douxiance 回复于 2015年08月28日 · 2332 次阅读

这两天做一个聊天服务器,好不容易放到服务器上了,但是我是这么启动的

rackup faye.ru -s thin -E production -o 0.0.0.0 &

怕他自己挂掉,让 crontab 轮询去,执行文件

faye.sh
#!/bin/sh
echo "ddssf" >> /var/ssss.tx
DTTERM=$(ps -ef|grep thin | grep -v "grep :9292"|wc -l)
if [ $DTTERM = 2 ]; then
cd /var/www/html/jenkins/xxxx/xxxxx;
rackup faye.ru -s thin -E production -o 0.0.0.0 &
echo "ok" >> /var/ssss.tx
fi
```
结果文件执行没问题,但是服务就是起不来
手动执行 ,就启动了
```
sh faye.sh
```
亲们,这是怎么回事?权限问题?

cron.log写着

Aug 28 14:07:01 iZ28tq0g0rnZ CRON[20947]: (root) CMD (bash /etc/faye_client.sh) 


首先你就不该用 crontab 来解决你的第一个 Faye 挂掉的问题,你需要 god

同意 #1 楼 @huacnlee 的观点,至少 crontab 不是用来干这个事情的。

如果你想快速解决这个问题,我建议你 ssh 到服务器上,开一个 screen 或者 tmux 的 session,然后在里面启动 faye 进程,然后 detach 这个 session 即可,只要服务器没有重启的话,可以随时 attach 到这个 session 上去。

关于 crontab 的问题,估计大概是 shell 执行环境的问题,crontab 默认的 shell 执行环境跟 user 的执行环境有所区别,需要特别处理。具体可以研究一下 Whenever 是怎么通过 crontab 执行用户任务的。

@huacnlee@lgn21st,明白了我试验一下去,第一做这类问题没有什么经验,就知道 crontab。。。

@lgn21st 描述的如此详细,受教了!

5 楼 已删除
需要 登录 后方可回复, 如果你还没有账号请 注册新账号