【问题标题】:what does pkill -KILL -f java do?pkill -KILL -f java 有什么作用?
【发布时间】:2018-12-08 04:03:24
【问题描述】:

我试图了解这段代码的每一行到底是做什么的:

cat << EOF > /tmp/kill_loop.sh
#!/bin/bash
while true;
do
    pkill -KILL java
    pkill -KILL python
    sleep 1
done
EOF

nohup /bin/bash /tmp/kill_loop.sh &

但最重要的是 pkill -KILL -f 做了什么

【问题讨论】:

标签: linux bash operating-system


【解决方案1】:

来自pkill 的手册页:

pkill 命令搜索正在运行的系统上的进程表并 向所有符合命令行中给定条件的进程发出信号。

-KILL 参数指定要发送哪个 Linux 进程信号:

Signal name Signal value    Effect
SIGHUP      1               Hangup
SIGINT      2               Interrupt from keyboard
SIGQUIT     3               Quit
SIGABRT     6               Abort
SIGKILL     9               Kill signal
SIGTERM     15              Termination signal - allow an orderly shutdown
SIGSTOP     17,19,23        Stop the process

请参阅https://linux.die.net/man/1/pkillhttps://linux.die.net/man/7/signal 了解更多信息。

编辑:在您的示例中,java 作为模式操作数被传入:

模式 - 指定扩展正则表达式以匹配进程名称或命令行。

【讨论】:

  • 感谢您的回答,并指定 java/python,这如何帮助找到要杀死的进程?
  • 如果您不想杀死一个您已经知道名称的进程(例如 java),您通常会使用 ps 命令来确定要杀死哪个进程。
  • 那么在上面的命令中,java应该是进程名吧?而不是文件扩展名或语言?
  • 没错。 Java 源代码通常存在于带有.java 扩展名的文件中。调用一个名为javac 的进程将.java 文件编译成.class 文件。然后,为了实际运行编译后的 java 代码,调用java 进程。所以杀死名为java的进程会杀死机器上所有正在运行的java代码。
猜你喜欢
  • 2013-10-15
  • 2017-09-29
  • 1970-01-01
  • 2017-10-24
  • 1970-01-01
  • 1970-01-01
  • 2015-01-10
  • 2012-06-16
  • 2016-07-26
相关资源
最近更新 更多