bash - 如何通过调用它的 shell 脚本找到进程名称?

标签 bash shell unix ksh

有没有办法,我可以通过用于调用bash脚本的shell脚本找到bash脚本的进程名称?或者我可以将 bash 脚本的进程名称设置为诸如

-我的进程

(我已经研究过argv[0],但我不清楚)

所以当我使用时

ps -ef | grep -c '[M]yprocess'

我只获取 myprocess 的所有实例?

最佳答案

要获取当前正在运行的脚本的命令名称,请使用:

ps -q $$ -o comm=

要获取与当前脚本同名的所有正在运行的脚本的进程信息,请使用:

ps -C "$(ps -q $$ -o comm=)"

要查找当前正在运行的与当前脚本同名的所有脚本的进程 ID,请使用:

pgrep "$(ps -q $$ -o comm=)"

它是如何工作的

$$ 是正在运行的脚本的进程 ID。

选项-q $$告诉ps仅报告进程ID $$

选项-o comm=告诉ps省略 header 并跳过通常的输出,而只打印命令名称。

关于bash - 如何通过调用它的 shell 脚本找到进程名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48861408/

相关文章:

php - 从PHP启动Docker容器

c - 在 gcc 中使用 -D 标志定义多字宏

c - 如何限制fifo的用户数量?

unix 命令 'tail' 丢失选项 '--line-buffered'

bash - 如何在 bash 中循环遍历字母表的前 n 个字母

mysql - 从其他脚本调用时,Linux 脚本和 MySql 操作不起作用

linux - 从 bash 脚本启动 Ant 构建 : build. xml 不存在

bash - 循环脚本只执行一次 - Bash

C反向shell问题

unix - Emacs Monky 错误 - 删除旧名称 : no such file or directory