当我以守护程序模式启动“粘贴”网络服务器时,它似乎会在源文件的时间戳更新时取消它重新加载的能力。
这是我如何启动守护进程...
cd ${project} && ../bin/paster serve --reload --daemon development.ini; cd ..;
...这违背了使用粘贴的要点之一(对我来说)。
有没有人遇到过这个或知道我做错了什么?
完整地说,我正在更改的文件是一个控制器文件。
版本是“PasteScript 1.7.3”
我相信这两个选项本质上是不兼容的,因为重新加载器使用 SIGTERM 停止服务器,而守护进程服务器不受此影响——并且因为daemon
它旨在用于在生产环境和reload
开发/调试环境中运行,我想他们的不兼容不会被视为一个很大的损失。我想象一个定制的重新加载器,为正确停止和重新启动守护服务器而定制,当然可以开发,但我不知道任何现有的。
我有一个类似的问题并规避了这个问题。我目前在远程主机上运行 paste ,但我仍在开发中,所以我需要一种重新启动 paste 的方法,但是手动手动太耗时,并且守护进程不起作用。所以我总是必须保持一个对服务器打开的 shell 窗口并在没有 --daemon 的情况下运行 paste 。一旦我完成了那天的工作,我关闭了 shell,paster 死了,这很糟糕。
我通过在“屏幕”中运行非守护进程的 paste 来规避这一点。只需在您选择的 shell 中键入“screen”,您通常会根据您的 linux 显示一个虚拟终端,即使您注销远程会话,它也会继续运行。像往常一样在新的“窗口”(屏幕)中使用 --reload 但没有守护程序启动 paste,然后分离窗口,这样你就可以返回到正常的 shell(分离 = CTRL-A,然后按 D)。您可以通过键入“screen -r”重新进入该屏幕。如果您想杀死它,请重新连接它(screen -r)并在屏幕内键入 CTRL-A,然后按 K。
希望有帮助。