如何在后台运行Solr Jetty

我正在使用Solr附带的Jetty / Solr构建,并希望在后台而不是在终端中运行它。

现在我通过java -jar start.jar启动它,但我希望它能够登录到文件并在服务器的后台运行,以便我可以关闭终端窗口。

我确定有一些我找不到的java配置。

我已经尝试了java -jar start.jar > log.txt &但是没有运气仍然输出到终端窗口。

谢谢。

尝试以下方法:

 nohup yourcommand > output.log 2>&1 & 

nohup将阻止您在注销时终止您的命令。

将在后台运行它。

> output.log将stdout发送到output.log

2>&1将stderr重定向到stdout

nohup用于执行从shell注销后运行的命令。 你需要的是’2>&1’。 这会将标准错误重定向到标准输出。 所以一切都会记录到log.txt。 试试这个

java -jar start.jar> log.txt 2>&1

您还可以添加’&’作为后台进程启动它。

如果你在unix screen你可以用screen运行它。

您也可以将其正确安装为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 # ======================== 

现在你应该能够启动它

 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的发行版上尝试过。 您还可以考虑对jetty.sh进行符号链接,以便更容易升级。

您可能想尝试nohup ,如上一个答案所述 。