当前位置: 首页 > 知识库问答 >
问题:

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

须旭
2024-03-25

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

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

共有1个答案

楚嘉胜
2024-03-25

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

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

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

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

 类似资料:
  • 我有一个小的Maven应用程序,它使用JaCoCo进行测试覆盖报告。我不断得到以下错误: 由于缺少执行数据文件,正在跳过JaCoCo执行 这是我的POM。xml文件。我自己删除了项目元素。 这是我的主类,它位于结构下: 这是带有单元测试的类,它位于结构下: 我该如何解决这个问题?

  • 我对编程非常陌生,而且对在UNIX环境中编程也非常陌生,所以请耐心听我说。 当我跑的时候 在我的Python 3控制台中,输出是 我可以导入我用pip3安装的任何库,没问题。当我在运行Python3内核的Jupyter笔记本中这样做时,输出是 我无法访问与pip3一起安装的库。我能做些什么来修复它,让Jupyter从正确的位置执行Python,这样我就可以使用我为Python3安装的任何东西和pi

  • 终端中使用lldb运行可执行文件 进入lldb环境, 在终端内输入lldb回车 lldb 使用file命令, 将可执行文件包装成一个target (lldb) file test Current executable set to '/Users/shenyj/Documents/CodeForTest/staticOCLib/test' (x86_64). 运行可执行文件, 在刚刚的l

  • vendor 文件是什么? 任何一个 Composer 程序包想要传递给安装包的用户的命令行脚本都应该被列为 vendor 文件。 如果包包含了包用户不需要的其他脚本(如构建或编译脚本),则代码不应被列为 vendor 文件。 它是如何定义的? 它是通过将 bin 键添加到项目中来定义的 composer.json。它被指定为文件数组,因此可以为任何给定项目添加多个二进制文件。 { "bi

  • 我创建了一个个人使用的基本应用程序。我的应用程序的支持使用快速Api和SQLite数据库。通常要运行我的启动和运行我的后端服务器,我必须使用以下命令: 我以前见过其他人创建python可执行文件。我也想这样做,但我需要它来启动uvicorn服务器。如何创建运行uvicorn服务器的python可执行文件? 还是只编写一个执行此操作的批处理脚本更好?