貌似是不能直接根据文件名直接得到执行后的PID的。有些方法,就是获取进程列表,然后根据关键词过滤,比如 linux 系统上的 pgrep 命令。但是应该不是你想要的解决办法。nginx -s reload 能上获取pid,是因为 nginx 在运行后会创建一个文件 /run/nginx.pid ,里面会记录 nginx 当前的 pid,所以 nginx 可以通过读取文件内容获取到 pid。systemctl reload nginx 能获取到 pid ,一个是因为 nginx 服务是由 systemd 启动管理的,所以它能知道 nginx 的 pid 。一个是因为也有类似写pid文件的机制在里面,取决于配置了哪种类型的服务。
貌似是不能直接根据文件名直接得到执行后的PID的。
有些方法,就是获取进程列表,然后根据关键词过滤,比如 linux 系统上的 pgrep 命令。但是应该不是你想要的解决办法。
nginx -s reload 能上获取pid,是因为 nginx 在运行后会创建一个文件 /run/nginx.pid ,里面会记录 nginx 当前的 pid,所以 nginx 可以通过读取文件内容获取到 pid。
systemctl reload nginx 能获取到 pid ,一个是因为 nginx 服务是由 systemd 启动管理的,所以它能知道 nginx 的 pid 。一个是因为也有类似写pid文件的机制在里面,取决于配置了哪种类型的服务。