如何在后台运行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
,如上一个答案所述 。
- Java / Jetty:如何向嵌入式Jetty添加filter
- spark java:如何处理multipart / form-data输入?
- 在Jetty 8.1.12中将dirAllowed设置为false
- 如何从另一台机器上看到GWT Jetty devmode?
- java.lang.IllegalStateException:没有SessionManager
- jackson注释被忽略了
- 如果从jar运行,带有嵌入式jetty的Spring应用程序找不到webdefault.xml
- 如何在Google App Engine Java应用程序之间共享模块之间的会话?
- 如何为Jetty的Maven Cargo插件指定jetty-env.xml文件?