问题:命令的每个元素是什么:
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 -runcommand test_program.php
是一个进程的例子。如果您使用命令 ps ax
,您将获得所有进程的列表以及执行它们的程序。所以我只是假设 php 解释器位于 /var/php/
并且 php 文件的执行是一个命令。
关于java - 命令: pkill -INT -f '^php test_program.php$' 的疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37430052/