有没有办法,我可以通过用于调用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/