我正在使用带有 Bash shell 的 Debian Virtual Box,并且尝试使用带有 -c 开关的 ps 命令通过搜索进程名称来查找进程的 ID。这就是我写的:
ps -c processname
然后它告诉我:
错误:不支持的选项(BSD 语法)
这是告诉我使用当前正在使用的语法的网站的 URL:了解kill命令以及如何终止Linux中的进程
有什么帮助吗?
答案1
请尝试使用此语法。
ps -A | grep processName
如果您的结果包含进程 grep,请使用以下命令将其删除:
ps -A | grep processName | grep -v grep
根据我的经验,大多数 Linux 程序的工作方式都是相同的(ps),但总会有一些差异。
通过手册页检查您当前的版本,以了解安装的正确语法。
man ps
顺便说一句:检查 grep 的手册页,使其不区分大小写。
man grep
答案2
那篇博文说的是使用-C
flag,而不是-c
flag。您将大写 C 替换为小写 C,这是行不通的。选项区分大小写。为了避免此类转录问题,请复制粘贴。
话虽这么说,解析 的输出ps -C
并不是一个好主意。有一个专门的程序可以做到这一点:pgrep
。用于pgrep -f processname
查看哪些进程正在运行指定的命令。请参阅手册了解其他有用的选项。当您准确确定要杀死哪些进程后,替换pgrep
为pkill
:pkill
匹配完全相同的进程pgrep
(它是相同的代码,甚至是相同的二进制文件),但杀死它们而不是显示有关它们的信息。