【问题标题】:Thin and sinatra - how to stop/restart? No thin.pidThin and sinatra - 如何停止/重启?没有瘦.pid
【发布时间】:2011-12-09 15:12:21
【问题描述】:

我正在使用 Thin 作为 Sinatra 应用程序的服务器。就这样开始了:

thin -C config/environment.yml -R config/config.ru start

environment.yml 有薄的东西,config.ru 有一般的东西,你可以在机架文件中找到。

我希望能够像使用 apache/tomcat/etc 一样进行守护进程(使用 Thin 的配置文件很容易)并停止并重新启动。

当我尝试thin stop 或重启或其他各种事情时,我得到:

Can't stop process, no PID found in tmp/pids/thin.pid

确实,没有这样的文件。我已经尝试在瘦配置 yml 中指定一个 pid 文件和位置(例如/tmp/thin.pid,很容易)到各个不同的地方。所做的只是改变"no PID found in"消息中目录的位置,仍然没有创建pid文件。

有什么想法吗?

【问题讨论】:

  • 你的应用真的在运行吗? ps ax | grep thin 你瘦了吗?
  • 是的,应用程序正在运行,我用 ps 获取它,我可以通过浏览器/curl/what have you 连接到它。我目前在screen 中运行它,当我想重新启动时,只需screen -rctrl+c,然后手动重新启动。我想做得更好。
  • 你试过thin -C config/environment.yml stop吗?
  • 我有,我收到了这条信息。 thin stopthin -C whatever.yml stop 之间的唯一区别是它要查找 pid 的目录的位置。指定 yaml 文件后,它将在该文件中由 pid: 选项指定的目录中查找。但无论哪种方式,据我所知,从来没有在任何地方写过 pid 文件。我试过调整位置、权限等。没有运气。
  • 从你的问题我猜你的配置文件中有守护进程选项。但是也指定--daemonize 开关怎么样?

标签: sinatra thin


【解决方案1】:

将在 Thin 被守护进程时创建 Pid,因此请仔细检查您的配置中的 daemonize: true 选项。考虑到它是 yaml,空格会使事情出错。或者指定--daemonize 开关。

如果你的 pid 文件的位置不是默认的,你也应该在发出 stop 时指定配置文件:

thin -C config/environment.yml stop

【讨论】:

  • 我很确定这应该是配置文件中的daemonize: true(即没有“d”)
猜你喜欢
  • 2013-05-04
  • 2011-07-01
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多