linux – 如何杀死永不死的进程?

问题

我有java进程,它既不会死于SIGTERM也不会死于SIGKILL.

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 main process (2546) killed by KILL signal

实际上你的过程确实停在这里.

init: logstash main process ended,respawning

init启动新的logstash进程以替换它.

这也表明哪个控制进程负责重启logstash:init. (在RHEL 6和CentOS上是Upstart)您的进程很可能是从/ etc / inittab或/etc/init/logstash.conf(或类似)中的drop-in文件开始的,应该使用apropiate工具控制,initctl而不是kill.

尝试使用initctl列表来查看是否存在logstash.

然后initctl stop logstash将停止它.

编辑或删除/ etc / init中的conf文件将允许您持久禁用它.

您甚至可以使用service和chkconfig命令控制作业.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...