在Java和Jetty应用程序部署方面,我是新手。我使用默认设置来设置我的码头服务并在终端窗口上运行java -jar start.jar
。服务器按预期运行,但当我关闭终端时它会停止。这是正常的吗?我之前和之前都使用过XAMPP,你可以毫无问题地关闭终端。我如何克服这个问题,每个人都需要偶尔关闭那台个人电脑。
我正在使用mac btw。
答案 0 :(得分:10)
听起来你正在使用ssh或类似东西在远程Linux / Unix服务器上启动Jetty。
因此,您可以使用nohup java -jar start.jar &
- nohup
来阻止您的进程在您注销时被常用的Unix“hangup”信号(ref)停止,并&
1}}将jetty作为后台进程,因此您可以键入exit
或其他任何内容进行注销。
如果您希望能够重新连接到Jetty终端,我建议您阅读GNU screen。
如果你想再次优雅地停止码头,我真的建议将其用作服务,或者使用screen
以避免丢失终端。但如果为时已晚,您可以在jps -l
的输出中找到PID,然后调用kill $PID
。
答案 1 :(得分:4)
尝试“nohup java -jar start.jar&”
我已经在之前的问题中说过了)
答案 2 :(得分:1)
答案 3 :(得分:1)
如何杀死进程:
1)java风格
启动码头时:
java -DSTOP.PORT = 8077 -DSTOP.KEY = secret_key_only_admin_know -jar start.jar
停止:
java -DSTOP.PORT = 8077 -DSTOP.KEY = secret_key_only_admin_know -jar start.jar -stop
P.S。 ports可以是任何 - 但它们对于start和kill命令必须相同:)
2)linux风格
通过PID杀死进程
答案 4 :(得分:1)
您也可以将其正确安装为Linux服务(如果您实际连接到Linux服务器)。
cd到您的jetty文件夹,例如我的:
cd /home/spydon/jetty/
他们实际上已经使用jetty.sh文件完成了大部分工作,因此将其复制到/etc/init.d /
sudo cp ./bin/jetty.sh /etc/init.d/jetty
然后使用您喜欢的文本编辑器打开文件,如vim或nano
sudo vim /etc/init.d/jetty
一开始只需取消注释(只需删除哈希(#))三行,如
#chkconfig: 3 99 99
#description: Jetty 9 webserver
#processname: jetty
同时你打开文本编辑器,同时将jetty主目录添加到文件的开头,我的看起来像这样:
#!/usr/bin/env bash
#
# Startup script for jetty under *nix systems (it works under NT/cygwin too).
JETTY_HOME=/home/spydon/jetty
# To get the service to restart correctly on reboot, uncomment below (3 lines):
# ========================
chkconfig: 3 99 99
description: Jetty 9 webserver
processname: jetty
# ========================
(你实际上并不需要取消注释这三行才能正常工作,只需要添加jetty_home。但是为了正确部署,你应该修复这些行。)
现在你应该可以用
启动它了sudo /etc/init.d/jetty start
如果您希望每次启动时都运行,只需添加
即可sudo ln -s /etc/init.d/jetty /etc/rc1.d/K99jetty
sudo ln -s /etc/init.d/jetty /etc/rc2.d/S99jetty
这适用于大多数现代发行版,但我只是在基于debian的发行版上尝试过。