我有没有与SIGTERM或SIGKILL都不死的java进程。
logstash 2591 1 99 13:22 ? 00:01:46 /usr/bin/java -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+DisableExplicitGC -Djava.awt.headless=true -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -Xmx1g -Xms256m -Xss2048k -Djffi.boot.library.path=/usr/share/logstash/vendor/jruby/lib/jni -Xbootclasspath/a:/usr/share/logstash/vendor/jruby/lib/jruby.jar -classpath : -Djruby.home=/usr/share/logstash/vendor/jruby -Djruby.lib=/usr/share/logstash/vendor/jruby/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main --1.9 /usr/share/logstash/lib/bootstrap/environment.rb logstash/runner.rb --path.settings /etc/logstash
每次收到信号都会重新生成。
Sep 15 13:22:17 test init: logstash main process (2546) killed by KILL signal Sep 15 13:22:17 test init: logstash main process ended, respawning
这听起来很奇怪,但即使我重新启动服务器, 它仍然不会死 。
通过以下命令通过init脚本执行进程:
NAME=logstash LS_USER=logstash LS_OPTS="--path.settings=/etc/logstash" LS_PIDFILE=/var/run/$NAME/$NAME.pid LS_STDERR="/var/log/logstash/logstash.stderr" DAEMON="/usr/share/logstash/bin/logstash" runuser -s /bin/sh -c "exec $DAEMON ${LS_OPTS}" ${LS_USER} &>${LS_STDERR} &
有什么办法强制这个进程杀死比重新安装操作系统?
过程:
logstash 5.0.0~alpha5
OS:
Red Hat Enterprise Linux Server release 6.7 (Santiago)
Java版本:
openjdk version "1.8.0_101" OpenJDK Runtime Environment (build 1.8.0_101-b13) OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)
服务器部署在Microsoft Azure上。
init:logstash主进程(2546)被KILL信号杀死
其实你的过程在这里停止。
init:logstash主进程结束,重新生成
init启动一个新的 logstash进程来replace它。
这也显示了哪个控制进程负责重新启动logstash: init 。 (在RHEL 6和CentOS上是Upstart)您的进程很可能从/etc/inittab
或/etc/init/logstash.conf
(或类似的)中的一个插入文件开始,应该使用apropiate工具进行控制, initctl
而不是kill
。
尝试initctl list
,看看是否有logstash。
然后initctl stop logstash
将停止它。
编辑或删除/ etc / init中的conf文件将允许您永久禁用它。
您甚至可以使用service
和chkconfig
命令来控制作业。
这可能是因为logstash-relay正在运行…您应该尝试停止logstash-relay
在这之后检查ps是否在那里然后initctl list | 分类
我希望这会帮助你! 它解决了我的问题!
谢谢
VR