我有以下脚本
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)