java项目启动后,偶尔会发生停止,并且报出如下的提示,这个是属于啥问题,该怎样解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java项目启动后,偶尔会发生停止,并且报出如下的提示,这个是属于啥问题,该怎样解决?相关的知识,希望对你有一定的参考价值。

参考技术A 你需要看 hs_err_pid的那个log。追问

那个文件我看过,这个错误就是那个文件里面的开头的内容,完全一样,一个字都没有变。文件的下面就是thread的说明。请问这个是什么问题。我该怎么改?

追答

这么点信息没法定位问题。如果是发布时发生,可以怀疑是应用包的问题。如果运行到一段时间发生,就应该是某个功能有问题。 这样就需要加业务日志了。

还可能是 tomcat本身就有问题。换一个版本试试。

mysql随Linux开机自动启动

参考技术A

  在MySQL的管理过程中 偶尔会遇到一些PC Server宕机或者重启 这时我需要在主机启动后再将MySQL服务启动 一般情况下 这项工作都是简单的 但是 当面临上百台或者更多的MySQL主机的时候 这种 偶尔 可能会很多 这种 偶尔 还会在半夜或者凌晨发生 如果每次都手动操作 这是很繁琐的 更重要的是 如果因此而打断了凌晨的美梦是不值得的

  要实现随开启自动启动mysqld 我们需要搞定如下几个问题

   Linux开机自动启动脚本放在哪儿?

  一般的 作为服务器使用的Linux一般会以 完全多用户模式(Multi User Mode with Neorking) 级别来启动 这种情况下Linux在启动时会运行/etc/rc d/rc d/下的全部脚本 例如我们在这个目录下会看到脚本 /etc/rc d/rc d/S crond 意味着开机启动时会运行S crond脚本

   Linux如何运行这些脚本?

  既然已经知道自动启动脚本该放在哪儿了 一切就好办 我们只需要将一个启动MySQL的脚本放过去就好了 下面是我们的一个简单的启动脚本v mysqldauto

  $vi mysqldauto

  #!/bin/sh

  # Version: by

  /opt/mysql/bin/mysqld_safe user=mysql &      #这里需要修改为你的mysqld_safe目录

  $chmod +x mysqldauto

  $mv mysqldauto /etc/rc d/init d/

  $ln s /etc/rc d/init d/mysqldauto /etc/rc d/rc d/S mysqld

  这样我们就把创建的mysqldauto脚本放到了/etc/rc d/rc d/下面(注意这里使用了link的方式) mysqld可以自动启动了

  这有两个问题需要解释

  * * * * * 为什么不直接在目录/etc/rc d/rc d/下创建文件 而要创建一个软连接?这并不是必须的 但是这样做是有很多好处的(后面会解释) 不过这样做至少会看起来更加专业

  * * * * * 为什么文件名要用S mysqld?这是规则 在rc d下面的脚本如果以字母S开头 那么执行时Linux会给它传递一个start参数(如果以字母K开头 则会传递stop参数) S后面接个数字 表示了这个脚本的启动顺序 如果目录rc d下还有S *那么它会在S 之前运行 (看到这儿 你可以猜测一下前面我们为什么要创建软连接了)

  好了 自此你的mysqld就已经可以随Linux开机自动启动了

   怎样做更专业些?

  上面这样做 已经可以解决问题了 不过写法多少有些 山寨 下面我们看看怎样改造一下

  * * * * * 改造 处理参数start 既然前面提到以字母S开头的脚本会自动传递一个参数start K则会传递stop 那么我再做如下修改

  $vi mysqldauto

  #!/bin/sh

  # Version: by

  MYSQLHOME=/opt/mysql                         #这里需要修改为你的mysql安装目录

  if [ $# ge ];then

  mysqldProc=`ps ef|grep E mysqld +safe |grep v grep |wc l`

  if [ $ = stop ] ;then

  if [ $mysqldProc eq ];then

  $MYSQLHOME/bin/mysqladmin uroot shutdown

  fi

  elif [ $ = start ];then

  if [ $mysqldProc eq ];then

  $MYSQLHOME/bin/mysqld_safe user=mysql &

  fi

  fi

  fi

  做了如此改造后 我们脚本需要接收两个参数start stop了 如果你想让你mysqld在关闭主机的时候自动关闭 那么stop参数就可以起作用了

  $ln s /etc/rc d/init d/mysqldauto /etc/rc d/rc d/K mysqld

  这里做软连接好处就体现出来了 启动和关闭只需要用一个脚本就可以了

  * * * * * 改造 当你面临几十上百台主机的时候 MySQL的启动参数可能会不一样 例如备库启动时可能需要mysqld_safe –user=mysql –read_olny= & 这种情况怎么办呢?这里提供一个解决思路

lishixinzhi/Article/program/MySQL/201311/29483

以上是关于java项目启动后,偶尔会发生停止,并且报出如下的提示,这个是属于啥问题,该怎样解决?的主要内容,如果未能解决你的问题,请参考以下文章

cmd命令启动jar包或redis服务偶尔发生程序异常问题

java动态控制线程的启动和停止

由于打包失败造成项目无法启动,报错:找不到程序包

mysql随Linux开机自动启动

解决Myeclipse启动Spring Boot项目报出莫名异常

在我调用 r.exec 以启动 cmd 提示符后如何停止执行我的 java 程序