2024-04-19 04:53:12 发布
网友
我的朋友在macOS环境中,他想在python脚本结束时调用os.system('exit'),以关闭终端。这并不奇怪,但我想知道当这个调用发出时,python脚本和终端之间究竟发生了什么。
os.system('exit')
在我的心理模拟中,终端应该告诉你仍然有正在运行的作业,但这也不会发生。
作为一个附带问题:当一个进程调用这个时,一些不太常见的终端会关闭吗?
阅读帮助:
Execute the command (a string) in a subshell.
启动子shell,并在该子shell中运行exit。
exit
要退出封闭终端,必须杀死父级。一种方法是:
os.system("kill -9 %d"%(os.getppid())
记住,system首先生成/分叉一个子shell来执行其命令。实际上,您只要求子shell退出。
system
system函数启动另一个shell来执行命令。因此,在本例中,Python脚本启动一个shell并在其中运行“exit”命令,从而使该进程退出。但是,Python脚本本身,包括它运行的终端,继续运行。如果目的是要终止终端,则必须获取父进程ID并发送一个信号,请求它停止。这将杀死Python脚本和终端。
阅读帮助:
启动子shell,并在该子shell中运行
exit
。要退出封闭终端,必须杀死父级。一种方法是:
记住,
system
首先生成/分叉一个子shell来执行其命令。实际上,您只要求子shell退出。system
函数启动另一个shell来执行命令。因此,在本例中,Python脚本启动一个shell并在其中运行“exit”命令,从而使该进程退出。但是,Python脚本本身,包括它运行的终端,继续运行。如果目的是要终止终端,则必须获取父进程ID并发送一个信号,请求它停止。这将杀死Python脚本和终端。相关问题 更多 >
编程相关推荐