怎么知道一个Python程序是否正常退出

怎么知道一个Python程序是否正常退出,第1张

与其他程序同样判断。

Windows:

python.exe app.py

if %errorlevel% 渣早== 0 (echo success) else (echo failed)

Linux(在命令中运行):

if python app.py then echo success else echo failed fi

Linux(上一个命令运行):

python app.py

if [[ "$?" == 衫桥"0" ]] then echo success else echo failed fi

Python(Popen子进程方式运行):

import sys

from subprocess import Popen

args = sys.executable, 'app.py'

p = Popen(args)

p.wait()

if p.poll() == 0:

    print('success')

else:

    print('failed')

Python(exec方式)

# 由于python3没有execfile函数,这里采用exec的方式

import sys

with open('app.py', 'rb') as f:

    code = f.read().decode()

    try:

        if sys.version_info.major == 2:

      或梁猛      exec code

        else:

            exec(code)

    except:

        print('failed')

    else:

        print('success')

如果被监测程序是你自己编羡大此写的,那你可以在程序进程结束的时候主动去通知监测进程。

如果不是仿李,而你要监兄迅测它的运行情况,那么这和 *** 作系统有关。Windows和Linux下的处理方式是不一样的。

0和1是退出代码。

exit(0)表示干净的出口没有任何错误/问题

exit(1)意味着有一些问题/错误/问题,这就是为什么该程序正在退出。

这不是Python特定的,而且很常见。 一个非零退出代码被视为一个exception退出,有时,错误代码指出了问题所在。 零错误代码表示成功退出。

这对于其他程序,shell,调用者等来说很有用,知道你的程序发生了什么,并据此进行 *** 作。

这决定了程序在结束运行时的退出状态 (一般为0,成功为1,春段错误为1)。

这不是Python独有的,确切的效果取决于你的 *** 作系统和程序的调用方式(尽pipe99%的时间,如果你只是运行Python脚本,没关系)。

包括Python在内的所有C程序的标准约定用于exit(0)表示成功, exit(1)或任何其他非零值(范围在1到255之间)表示失败。 任何超出范围0..255的值都将被视为模256(退出状态存储在一个8位值中)。 有时,这将被视为签名(所以你可能会看到-128,-127等),但更通常它被视为无符号。

这个状态对于调用Python的代码是可用的。 这个惯例适用于不同平台,尽pipe非零退出状态的含义可以在不同的平台上有所不同。

传递给exit()函数的数字就是您的程序的返回代码,它被提供给 *** 作系统。 从程序的angular度来看,没有什么区别:执行将在两种情况下结束,并且提供给函数的值将被赋予给 *** 作系统。 但是一些工具和脚本考虑了程序的退出代码。 大多数工具在成功时返回0,非零表示出错。

所以,如果你的程序是从一个脚本,一个自动化的工具或者其他考虑了返回代码的软件(键巧比如IDE)运行的,那么你必须小心你返回的结果扒亮誉。

如果有疑问,只需返回0表示一切正常。

exit(0) :这会导致程序退出并成功终止。

exit(1) :这会导致程序以系统特定的含义退出。

在许多系统上, exit(1)表示某种失败,但是没有保证。

我记得,C标准只承认三个标准退出值:

EXIT_SUCCESS – 成功终止

EXIT_FAILURE – 终止不成功

0 – 与EXIT_SUCCESS相同


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8279470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存