【发布时间】:2016-10-28 14:25:26
【问题描述】:
我在 /usr/bin 中有一个编译的 C 程序说 test 和一个 python 程序说 pgm.py 在 /opt/python/ 中。在 pgm.py 中,我正在调用像 os.system("test arg1 arg2") 这样的 C 程序。 C 程序是否有可能知道它正在被 /opt/python/pgm.py 调用?
【问题讨论】:
-
获取父进程 ID 并查看您可以获得有关该进程的哪些信息。您可能能够获得类似于
python /opt/python/pgm.py或类似名称的父进程的命令行。 -
@tkausl,由于
os.system()执行为sh -c test arg1 arg2,父进程不会是shell 吗? -
@tkausl:不同意,根据 SilentMonk 的评论。
-
只要让 Python 脚本在调用
test时传递其 PID、真实路径以及其他参数即可。 -
你确定你的问题是我的父母是谁而不是谁应该有权运行我吗?如果是访问问题,您可能应该使用系统特定的访问限制,以保证您的进程不会由未经授权的应用或用户运行。