python有用的问题,如何根据可执行文件名获得该可执行文件执行后的进程?

例如 nginx start nginx stop
但是可执行文件 并没有与进程关联

我想实现类似热更新的功能

阅读 401
1 个回答

貌似是不能直接根据文件名直接得到执行后的PID的。

有些方法,就是获取进程列表,然后根据关键词过滤,比如 linux 系统上的 pgrep 命令。但是应该不是你想要的解决办法。

nginx -s reload 能上获取pid,是因为 nginx 在运行后会创建一个文件 /run/nginx.pid ,里面会记录 nginx 当前的 pid,所以 nginx 可以通过读取文件内容获取到 pid。

systemctl reload nginx 能获取到 pid ,一个是因为 nginx 服务是由 systemd 启动管理的,所以它能知道 nginx 的 pid 。一个是因为也有类似写pid文件的机制在里面,取决于配置了哪种类型的服务。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题