相关疑难解决方法(0)

Spring Boot应用程序即服务

如何在Linux系统中很好地配置Spring Boot应用程序打包为可执行jar作为服务?这是推荐的方法,还是应该将此应用程序转换为war并安装到Tomcat中?

目前我可以从screen会话中运行Spring启动应用程序,这很不错,但需要在服务器重启后手动启动.

我正在寻找的是一般建议/方向或示例init.d脚本,如果我使用可执行jar的方法是正确的.

service startup init.d spring-boot

179
推荐指数
9
解决办法
13万
查看次数

如何在Java中优雅地处理SIGKILL信号

当程序收到kill信号时,你如何处理清理?

例如,我连接的应用程序需要任何第三方应用程序(我的应用程序)finish在注销时发送命令.finish当我的应用程序被摧毁时,发送该命令的最佳发音是kill -9什么?

编辑1:无法捕获kill -9.谢谢你们纠正我.

编辑2:我想这种情况是当一个人调用kill时与ctrl-c相同

java sigkill

106
推荐指数
5
解决办法
9万
查看次数

如何在生产环境中运行spring boot可执行jar?

Spring boot的首选部署方法是通过一个包含tomcat的可执行jar文件.

它以简单的方式开始java -jar myapp.jar.

现在,我想将该jar部署到我在EC2上的linux服务器上,我是否遗漏了某些东西或者我是否真的需要创建一个init脚本来正确启动应用程序作为守护进程?

如果我java -jar在注销时简单地调用应用程序就死了.

我可以在屏幕或nohup中启动它,但这不是很优雅,我的服务器重启将迫使我登录并手动启动该过程.

那么,春季靴子的任务是否已经存在?

java linux spring spring-boot

93
推荐指数
3
解决办法
10万
查看次数

如何守护Java程序?

我有一个Java程序,我想在Linux系统上守护进程.换句话说,我想开始在shell中运行它,并在我退出后继续运行它.我也希望能够干净地停止这个程序.

我发现这篇文章使用shell脚本和Java代码的组合来完成这个技巧.它看起来不错,但如果可能的话,我想要更简单的东西.

在Linux系统上守护Java程序的首选方法是什么?

java daemon process

72
推荐指数
6
解决办法
9万
查看次数

在linux中启动类似服务的jar文件

我想按如下方式启动和停止我的jar文件

service myService start

service myService stop

我当前的jar文件运行如下

cd /home/alex/IdeaProjects/myService
java -jar target/myService-SNAPSHOT-1.jar server config.yml
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

java linux shell jar executable-jar

31
推荐指数
2
解决办法
7万
查看次数

如何从java程序在终端上运行命令?

我需要从JAVA程序在Fedora 16的终端上运行命令.我试过用

Runtime.getRuntime().exec("xterm"); 
Run Code Online (Sandbox Code Playgroud)

但这只是打开终端,我无法执行任何命令.

我也试过这个:

OutputStream out = null;
Process proc = new ProcessBuilder("xterm").start();
out = proc.getOutputStream();  
out.write("any command".getBytes());  
out.flush(); 
Run Code Online (Sandbox Code Playgroud)

但我仍然只能打开终端,但无法运行命令.关于如何做的任何想法?

java linux terminal

26
推荐指数
4
解决办法
8万
查看次数

spring boot init.d脚本启动停止守护程序:无法识别的选项--no-close

在将我的应用程序符号链接到/etc/init.d/myappname 之后

/etc/init.d/myappname start 给出"Failed to start"

/var/log/appname.log告诉

"start-stop-daemon: unrecognized option '--no-close'"

当我删除--no-closejar 时,jar 已损坏并且无法再运行。我很震惊。

bdw 我的 jar 是完全可执行的 jar。即,当我单独运行 jar 时,它会正常启动 springboot。

这里出了什么问题?

编辑:

do_start() {
  working_dir=$(dirname "$jarfile")
  pushd "$working_dir" > /dev/null
  if [[ -n "$run_user" ]]; then
    mkdir "$PID_FOLDER" &> /dev/null
    checkPermissions || return $?
    chown "$run_user" "$PID_FOLDER"
    chown "$run_user" "$pid_file"
    chown "$run_user" "$log_file"
    if [ $USE_START_STOP_DAEMON = true ] && type start-stop-daemon > /dev/null 2>&1; then
      arguments=(-Dsun.misc.URLClassPath.disableJarChecking=true $JAVA_OPTS -jar $jarfile $RUN_ARGS …
Run Code Online (Sandbox Code Playgroud)

java linux spring spring-boot

6
推荐指数
1
解决办法
2852
查看次数

无法使用init.d startscript执行jar

我遵循了这个教程:

作为init.d服务

可执行jar具有通常的启动,停止,重启和状态命令.它还将在通常的/ var/run目录中设置一个PID文件,并默认登录到通常的/ var/log目录.

你只需将你的jar符号链接到/etc/init.d就像这样

假设您在/ var/myapp中安装了Spring Boot应用程序,要将Spring Boot应用程序安装为init.d服务,只需创建一个符号链接:

$ sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp
Run Code Online (Sandbox Code Playgroud)

然后启动服务:

/etc/init.d/myapp start
Run Code Online (Sandbox Code Playgroud)

当我这样做时,就像在那里描述的那样,我在Ubuntu 14.04控制台中遇到以下错误:

ubuntu@spring:/var/myapp$ /etc/init.d/myapp start
-bash: /etc/init.d/myapp: cannot execute binary file: Exec format error
Run Code Online (Sandbox Code Playgroud)

java jar gradle spring-boot ubuntu-14.04

4
推荐指数
2
解决办法
4819
查看次数