【问题标题】:Starting a Thin application via cron通过 cron 启动瘦应用程序
【发布时间】:2013-07-12 16:50:08
【问题描述】:

我在 Centos 6 (http://shopify.github.io/dashing/) 上运行 Shopify Dashboard。当我从 git 下拉更新时,我希望在启动时通过 cron 启动它。

我在 bash 脚本中有以下代码,这与我通过命令行运行以启动仪表板的代码相同。

#!/bin/bash

cd /usr/share/dashboard/

dashing start -p 500 -d

从命令行以 root 用户身份运行实际脚本启动应用程序没有问题。

但是,当此脚本通过 cron 或启动时运行时,应用程序永远不会启动。

如果有人能解释为什么会出现这种情况,那将不胜感激。

【问题讨论】:

  • cron 作业是从哪个用户运行的?根据您的描述,它必须是 root。
  • 是的,cron 作业正在以 root 用户身份运行。
  • 我在 Ubuntu 14.04 上遇到了同样的问题。

标签: ruby dashboard thin


【解决方案1】:

根据我的评论,我仍然不能 100% 确定脚本是以 root 身份运行的。我会在脚本中添加一行:

echo $user > /tmp/test.txt

然后通过cron运行脚本,看看文件的值是什么。

我也质疑你的剧本。为什么要cd?

怎么样

/usr/share/dashboard/dashing start -p 500 -d

另外你可能需要做一个 nohup,也就是不挂断信号,所以...

nohup /usr/share/dashboard/dashing start -p 500 -d

这些都是我的猜测。

【讨论】:

  • 再次感谢您的帮助。我添加了第一行并将用户输出到文本文件。结果是一个空白文件,这确实表明未指定用户。但是我在 crontab 中指定了用户。
  • 我也有同样的问题,还在找原因。至于@Pete B. 的问题,dashing 可能不是标准命令,并且希望从创建仪表板项目的文件夹中运行。看起来 cron 有一些特殊的方式来运行命令,而不是命令行将产生的相同行为。
  • ps:最后一个参数“-d”也将进程发送到后台,无需使用“nohup”命令。
猜你喜欢
  • 2015-06-01
  • 2012-07-10
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 2012-10-06
相关资源
最近更新 更多