- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试编写一个 asyncio
脚本,它可以通过发送 SIGHUP 信号正常关闭。
import asyncio
from signal import SIGHUP
def handle_sighup():
print("sighup received")
raise Exception()
async def main():
asyncio.get_running_loop().add_signal_handler(SIGHUP, handle_sighup)
while True:
print("running")
await asyncio.sleep(1)
try:
asyncio.run(main())
finally:
asyncio.run(graceful_shutdown())
我天真地假设在处理程序中引发未处理的异常会传播到主协程并导致 finally
block 执行。然而,在打印“sighup received”之后,主协程继续运行。
我猜回调正在执行程序中运行?
我如何重构这段代码,以便可以处理信号以导致主协程停止并执行到 finally
block ?有没有更好的方法?
最佳答案
您可以使用 sys.exit在 handle_sighup
import asyncio
import signal
import sys
def handle_sighup():
print("sighup received")
sys.exit(0)
async def graceful_shutdown():
await asyncio.sleep(0.5)
print("shutdown")
async def main():
asyncio.get_running_loop().add_signal_handler(signal.SIGHUP, handle_sighup)
while True:
print("running")
await asyncio.sleep(1)
try:
asyncio.run(main())
except SystemExit:
asyncio.run(graceful_shutdown())
# finally: # you can put it in finally instead of except, up to you
# asyncio.run(graceful_shutdown())
关于python - 正常关机和信号处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57272992/
在我的 root 用户 android 应用程序上,我使用 执行关机 su reboot -p 它工作正常,但我注意到手机几乎立即关机(而不是显示关机动画,并且可能在做其他事情)。 这是以编程方式关闭
我想创建一个流量小部件,并在每次设备关闭时存储使用的流量。问题是我无法触发关闭接收器。 我使用了以下代码: IntentFilter actionShutdown = new IntentFi
前言 RTC RTC 即实时时钟(Real-Time Clock),主要是功能有: 时间保持:RTC可以在断电的时候,仍然保持计时功能,保证时间的连续性 时间显示与设置:RTC可以向系
我在网上发现我可以安排 Windows 关闭: private void button1_Click(object sender, EventArgs e) { // Shutdown
是我可以调用的任何方法,它返回给我的信息是电话实际要关机(关机)。我知道这是 ACTION_SHUTDOWN 的 Intent ,但我必须从另一个来源获取有关关闭电话的信息。最好是直接形成系统。可能会
有没有办法在终止时运行代码,无论终止是什么类型(异常、正常、未捕获的异常等)?我知道它在 Java 中实际上是可能的,但它甚至可能在 C++ 中吗?我假设是 Windows 环境。 最佳答案 不——如
我希望我的应用程序可以防止 Windows 关闭。我知道有一个系统命令可以做到这一点。但不适用于我的程序。我使用此代码“取消”关闭的窗口: private void Form1_FormClosing
如何为我的应用暂停足够长的关机时间?我找到了一个 example ,但它适用于 Delphi - 我无法将其翻译成 C++。 最佳答案 这是 Delphi 代码的 C++Builder VCL 翻译:
我想知道当某个软件需要重新启动、关闭、注销或休眠 Windows 时,最佳做法是什么: 使用ExitWindowsEx API 使用关机命令及其参数 每种方法的优点和缺点是什么? 谢谢 最佳答案 我总
当我在虚拟机运行时尝试关闭 Windows 时,VMWare Workstation 的表现非常酷: 通常,我们会看到“此程序正在阻止 Windows 关闭”消息,而不是新的“1 个虚拟机正在使用中”
1、注销,关机,重启 注销系统的logout命令 1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可: [root@localhost r
php 里面有个 system 方法, 可以调用系统命令。 先建立一个脚本(比喻 /root/reboot_server.sh ),重启用的。 复制代码代码如下: #!
我在戴尔 5000 游戏系列上安装了 Ubuntu 18.04,安装正常,然后在安装后提示重新启动。 重新启动登录屏幕后,我输入密码(为我在安装过程中创建的帐户)并按回车,但屏幕变为粉红色,几秒钟后它
我需要能够实现方法来防止这些情况发生: 关机 重启 注销 sleep 在 Mac 上,我使用的是 Xcode,但似乎无法找出执行这些操作的代码。 有人可以帮我从这里出去吗? 我发现了这个:http:/
我正在开发应用程序,我有一个要求:如果用户在任何时候长按电源按钮并再次按下以启动设备, Activity 应该从设备关闭的地方开始。我也不知道这个是不是一个有效的问题。我尝试使用: public cl
是否可以在所有网络接口(interface)停止之前检测到 Linux 中的系统关闭/重启?我可以处理 SIGTERM 信号并检查运行级别,但此时网络可能已经关闭。我需要 Python 脚本中的功能。
我目前正在开发一个小型但基本的应用程序,使用 tkinter 在我的 Windows 启动上运行,这样我就可以为我想要打开的不同内容提供一个小菜单。例如,我目前有启动我玩的一些游戏的按钮以及启动 Sk
我知道 shutdown -a 会中止 Windows 关机,但我需要知道是否有任何地方可以检查是否正在进行关机。 理想情况下,我想要一个像这样的小程序: import os while True
我试图在我的 c 程序中检测 Linux 的关闭或重启。我发现程序可以使用 signal(SIGTERM, handler) (SIGKILL, handler)。但是如果用户也使用命令终止进程,这两
我有这个工作的 Windows Server 2012 VM,需要重新启动。在我重新启动虚拟机后,更改了一些设置(连接了一个 DVD 驱动器),它会再次启动。 现在它说: Failed - The a
我是一名优秀的程序员,十分优秀!