我有一个名为 sudoserver.py
的 python 脚本,我通过以下操作在 CygWin shell 中启动它:
python sudoserver.py
我打算创建一个 shell 脚本(我还不知道我是使用 Windows shell 脚本还是 CygWin 脚本),它需要知道这个 sudoserver.py
python 脚本是否正在运行.
但是,如果我在 CygWin 中执行此操作(当 sudoserver.py
正在运行时):
$ ps -e | grep "python" -i
11020 10112 11020 7160 cons0 1000 00:09:53 /usr/bin/python2.7
在 Windows shell 中:
C:\>tasklist | find "python" /i
python2.7.exe 4344 Console 1 13.172 KB
看来我没有关于正在执行的 .py
文件的信息。我所知道的是 python 正在运行某事。
CygWin 上“ps”的 -l
(长)选项找不到我的 .py
文件。 /v
(详细)开关也不是 tasklist
。
什么应该是合适的 shell(Windows 或 CygWin shell 就足够了;如果可能的话两者都可以)以编程方式查找特定 python 脚本是否正在执行?
注意:python 进程可以由另一个用户启动。甚至来自未登录 GUI shell 的用户,甚至更多的是 “SYSTEM”(特权)Windows 用户。
最佳答案
这是平台的限制。
您可能需要使用一些低级 API 来检索进程信息。你可以看看这个:Getting the command line arguments of another process in Windows
您或许可以使用 win32api 模块来访问这些 API。
(抱歉,没有 Windows PC,所以我无法试用)
关于python - 我怎么知道我的 python 脚本是否正在运行? (使用 Cygwin 或 Windows shell ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22571333/