繁体   English   中英

如何正确启动Jetty

[英]How To Start Jetty Properly

这可能是一个非常愚蠢的问题,因为似乎没有人有这个问题。 在Jetty文档中,它说jar -jar start.jar启动Jetty,它确实如此。 但是当我关闭我的SSH控制台时,显然它已经死了。

我该如何正确运行?

这是否可以在生产机器上运行,该生产机器实际上将在Jetty下运行应用程序? 我认为情况就是这样,因为你要求正确启动它。

如果是这样,你需要一个适当的工艺监督体系,如runitdaemontools的monit的暴发户systemd ,或好醇” 的SysV init.d中 (如提及W / 梗概 )。 使用哪种方法取决于您的偏好,业务需求以及您的底层操作系统。

我使用并喜欢runit 它建立在坚实的原则 (daemontools) 之上 ,对于我喜欢的发行版(Debian和Ubuntu),它由作者自己很好地 打包

尽管在其他答案中被推荐,并在评论中提到,在screen / tmux中开始长时间运行的过程,或者通过nohup是次优的。 您无法真正控制该过程。 如果它死了它将不会重新启动。 您必须手动查找其PID,否则手动管理服务。 你必须做更多的手工工作来获取日志输出(重定向,发送到一些随机文件等)。 您不能可靠地使其依赖于其他进程,或者让其他进程依赖于它。 体面的过程监控系统默认为您提供所有这些功能。

如果您的目标完全不同,那么请更新问题以更具体地说明您的用例。

java -jar start.jar & 

(在后台运行)也应该可以工作,虽然日志记录不会像w / nohup一样好转。

这是因为杀死启动进程的shell(例如通过注销)会杀死进程,除非它们是后台进程。 屏幕也起作用,因为它在后台运行,并且屏幕有效地保持会话在您附加/分离时运行。

如果您使用的是* nix系统,最好的解决方案可能是使用/etc/init.d的脚本(或者系统的等效系统)。 有一个在https://gist.github.com/404672

否则,从命令行使用nohupscreen将至少让您在注销时不会死亡。 因此,将使用&将过程置于后台。

一种方法是使用nohup

nohup java -jar start.jar

这具有将stdout和stderr写入文件的优点

另一种方法是使用screen

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM