Procedure to exit upon keyboard interrupt for python script running multiple threads
我有一个脚本可以无限地运行两个线程。(每个线程都是无限的while循环)每当我正常运行它时,我都使用ctrl+z或ctrl+c来停止它的执行(取决于操作系统)。但自从我把它添加到Linux中的/etc/rc.local文件中,为了在引导时自动启动,我就无法使用这些命令强制退出。
这迫使我在Python脚本本身中包含一些内容,以便在键入某个键时完全退出。我该怎么做?
问题是我正在运行一个多线程应用程序,它连续运行,不等待任何用户输入。
我在线程的循环开始处添加了这个-
1 2 3 | ip = raw_input() if ip == 'quit': quit() |
但这不起作用,因为它会阻止用户输入并停止脚本。我一点也不想让这个脚本受到影响。我只想让它在我想停止的时候做出反应。我的问题不是要使用什么命令(这里解释了这一点——python exit命令——为什么要使用这么多命令,每个命令应该在什么时候使用?)但我应该如何在不影响程序流的情况下使用它。
保留处理
在程序启动后立即将其PID写入一个文件中,无论是从程序本身还是从异步启动它的代码中,都可以使以后发送信号更容易,而无需在进程列表中搜索进程。
一种方法是让线程检查全局变量作为其循环的一部分,并在设置变量时终止(
在终止之前,主线程可以简单地设置变量和