【发布时间】: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 -r、ctrl+c,然后手动重新启动。我想做得更好。 -
你试过
thin -C config/environment.yml stop吗? -
我有,我收到了这条信息。
thin stop和thin -C whatever.yml stop之间的唯一区别是它要查找 pid 的目录的位置。指定 yaml 文件后,它将在该文件中由pid:选项指定的目录中查找。但无论哪种方式,据我所知,从来没有在任何地方写过 pid 文件。我试过调整位置、权限等。没有运气。 -
从你的问题我猜你的配置文件中有守护进程选项。但是也指定
--daemonize开关怎么样?