这些都不是kill -9
或任何接近的东西。答案是什么?
import sys
import os
try:
exit()
sys.exit()
os._exit()
quit()
except:
print("THIS SHOULD NOT RUN")
如果任何abort()
的try-catch包装或类似的阻止它无法死亡的方法,这都是Python语言的荒谬。
这不是我所知道的任何其他语言中存在的东西。 abort()
是一项紧急安全措施。
答案 0 :(得分:1)
接续@Mike Scotty的解释:
选择一个:(sys.exit()
)
sys.exit()
引发异常,即SystemExit
。这就是为什么您进入except-block
。
示例:
import sys
try:
sys.exit()
except:
print(sys.exc_info()[0])
输出:
<class 'SystemExit'>
深入:
import sys
try:
sys.exit() # this always raises SystemExit
except SystemExit:
print("sys.exit() worked as expected")
except:
print("Something went horribly wrong") # some other exception got raised
输出:
sys.exit() worked as expected
答案 1 :(得分:0)
在脚本中尝试CTRL + C,应该可以解决问题
答案 2 :(得分:0)
嗯,我不喜欢Python处理此问题的方式,但是我找到了一个解决方案,它实际上是kill -9
:
免责声明:很遗憾,您必须以root用户身份启动和运行该过程。
os.system("sudo kill -9 " + str(os.getpid()))