我在Linux中使用简单的python.py脚本。我需要运行一个while / counter循环,并希望通过使用/ any terminal命令立即停止循环。我需要使用Screen运行脚本。简单地停止屏幕会话不起作用 - 它只停止循环中的当前进程,然后继续下一个进程。终端命令最好特定于所讨论的循环。
我正在看一个Try / Except循环:
x = 1
y = 100
try:
while x < y:
process x
time.sleep(10)
x = x + 1
except ?
我不知道从哪里开始。我需要实施方面的帮助,或者更好的方法来实现这一目标。
答案 0 :(得分:0)
如果这是linux,那么您可以使用操作系统信号。 只需创建一个抛出异常并捕获该异常的信号处理程序。 使用
注册信号处理程序signal.signal(signal.SIGINT, handler)
这将注册在将SIGINT发送到进程ID时要调用的处理函数。
import signal, time
class InterruptException(Exception):
pass
def handler(signum, frame):
raise InterruptException("Recieved SIGINT")
# Set the signal handler
signal.signal(signal.SIGINT, handler)
x = 1
y = 100
try:
while x < y:
print x
time.sleep(10)
x = x + 1
except InterruptException:
print "Iterrupted"
从bash你可以使用
kill -2 PID
其中PID是正在运行的脚本的进程ID
你可以随时从bash中启动和杀死
python my.app &
MY_PID=$!
kill -2 $MY_ID