java - 命令: pkill -INT -f '^php test_program.php$' 的疑问

标签 java php linux terminal kill-process

问题:命令的每个元素是什么:

pkill -INT -f '^php test_program.php$'

当我在 linux 终端中运行它时?我已经知道该命令会终止名为 test_program.php 的进程,但我不知道该命令的所有不同元素在做什么。请用尽可能简单的术语解释!我是 linux 命令的新手,目前我更喜欢婴儿行话而不是技术行话:)


我的研究:通过在 linux 终端中运行 man pkill,会出现一个手册,其中包含以下 pkill 定义:

  • 根据名称或其他属性发出信号。

这让我相信 pkill 不仅会终止一个进程,而且可以发送许多不同的信号,其中一个信号可能会终止进程。 pkill 命令的结构/概要显示为:pkill [option] pattern

在同一手册的选项列表中,-f, -full 具有以下定义:

  • 模式通常只与进程名称匹配。设置 -f 时,将使用完整的命令行。

我没有完全理解那是什么意思。此外,命令中的 -f 之前有一个 -INT,这让我相信可以将多个选项连接在一起,但是 - INT 手册中没有显示。

命令的其他部分似乎在识别正在运行的程序:'^php test_program.php$',但为什么命令的那部分不只是 ' test_program.php'?开头的 ^php 和结尾的 $ 是做什么用的?

最佳答案

您正在查看正则表达式。此表达式在进程名称中的任意位置查找字符串 test_program.php。因此,如果进程名称类似于

/var/php -runcommand test_program.php

它会找到进程并杀死它。

这也解释了 -f, -full 选项。如果不使用正则表达式,您将必须使用完整的进程名称(前一行)来匹配进程。

最后,-INT 通常用于向任务发送运行级别。

编辑

我错了,-INT 选项不用于运行级别(用于 Linux 内核),而是用于向任务发送信号。这可能类似于 Term(终止)、Stop(关闭)或 Cont(继续进程)。 pkill 默认向进程发送终止信号。

/var/php -runco​​mmand test_program.php 是一个进程的例子。如果您使用命令 ps ax,您将获得所有进程的列表以及执行它们的程序。所以我只是假设 php 解释器位于 /var/php/ 并且 php 文件的执行是一个命令。

关于java - 命令: pkill -INT -f '^php test_program.php$' 的疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37430052/

相关文章:

java - 检查 SWT/Jface 中数据绑定(bind)的值

PHP 从多个表中选择并将值相加得到总计

c - 在用 fopen 打开的文件上执行 ftruncate

linux - 在 ubuntu 服务器中设置代理后,apt-get 无法正常工作

java - 我们可以为序列化对象分配名称吗?

java - 如果尝试在 RestHelper 类中使用相同路径添加 JsonPut 和 JsonPost 方法,则无法编译代码

java - 如何在 BIRT API 中设置 Excel 工作表名称?

javascript - HTML - 两个表单,通过 'enter' 按键知道我正在输入哪个表单

php - Joomla 对禁用缓存的请求执行的数据库查询总量是多少?

linux - 社区字符串的 DLink 交换机 OID