小编Yu *_*abe的帖子

如何杀死一个永不消亡的进程?

问题

我有一个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
Run Code Online (Sandbox Code Playgroud)

每次收到信号时它都会重生。

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
Run Code Online (Sandbox Code Playgroud)

这听起来很奇怪,但即使我重新启动服务器,它仍然没有死

进程是通过 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} …
Run Code Online (Sandbox Code Playgroud)

linux centos6 logstash

26
推荐指数
1
解决办法
2万
查看次数

无效参数是什么意思?

我在互联网上搜索,但找不到有关INVALIDARGUMENT 的任何信息 。

在 systemd 中停止服务后,我得到了这个响应。

Oct 18 21:17:04 BSU00383 systemd: Stopping filebeat...
BUNCH OF APPLICATION ERROR HERE
Oct 18 21:17:04 BSU00383 systemd: filebeat.service: main process exited, code=exited, status=2/INVALIDARGUMENT
Run Code Online (Sandbox Code Playgroud)

看起来应用程序端在收到来自 systemd 的SIGKILL 信号之前未能处理SIGTERM 信号,但是在什么情况下 systemd 通常会返回 INVALIDARGUMENT ?

我使用的是红帽企业 Linux 7.4。

如果有人可以帮助我,我很感激...

谢谢,

渡边优

linux systemd

4
推荐指数
1
解决办法
6294
查看次数

标签 统计

linux ×2

centos6 ×1

logstash ×1

systemd ×1