小编k_v*_*ath的帖子

通过脚本名称搜索正在运行的脚本PID

我有以下脚本

hello.sh
--------
while :
do
    echo "hello"
    sleep 20
done
Run Code Online (Sandbox Code Playgroud)

当我运行上面的脚本时,我得到了 2627 作为脚本的 PID

root@localhost ~]# ./hello.sh &
[1] 2627
[root@localhost ~]#
Run Code Online (Sandbox Code Playgroud)

现在,当我在另一个终端中运行 ps 命令时,我没有在输出中获取脚本名称

[root@localhost ~]# ps -ef| grep 262[7]
root      2627  1582  0 19:19 pts/1    00:00:00 -bash
root      3427  2627  0 19:52 pts/1    00:00:00 sleep 20
[root@localhost ~]#
Run Code Online (Sandbox Code Playgroud)

$$ 是我运行脚本的主 shell 的 PID。我知道在脚本中我可以输入 $$ 来获取脚本的 PID,但这不是我的意图。

一旦我在后台运行了长时间运行的脚本,并且假设我意外关闭了终端,那么有没有办法使用脚本名称或任何其他方式来 grep PID?

供参考

[root@localhost ~]# echo $$
2586
[root@localhost ~]# ps -ef| grep 262[7]
root      2627  1582  0 19:19 pts/1 …
Run Code Online (Sandbox Code Playgroud)

ps shell-script

0
推荐指数
1
解决办法
2582
查看次数

标签 统计

ps ×1

shell-script ×1