You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关闭Jupyter Lab与终端后Python线程仍运行,此现象是否正常?

关于Jupyter Lab关闭后Python定时任务仍运行的疑问

我在Linux Mint系统中,使用schedule库每隔约一分钟从BACnet温控器读取数据并存储到sqlite3数据库中。发现关闭运行Jupyter Lab的Chrome浏览器以及启动Jupyter Lab的终端窗口后,该任务仍持续运行。虽然这对我而言是有利的,但我疑惑这是否属于预期行为,猜测可能是bac0或schedule库维持进程存活。我原本以为关闭上述窗口后进程会停止。

运行的代码

import time
from datetime import datetime
import schedule
import BAC0
import sqlite3

myIPAddr = '192.168.0.65/24'
bacnet = BAC0.connect(ip = myIPAddr)

def SetTempFromSchedule():
def StoreData():
def SetHeatTemp():
def SetCoolTemp():

schedule.every().minute.at(":00").do(setTempFromSchedule)

while True:
    schedule.run_pending()
    time.sleep(1)

问题解答

  • 这属于预期行为,但核心原因并非schedule或bac0库,而是Jupyter Lab的进程管理逻辑:
    • 关闭Chrome浏览器只是断开了和Jupyter前端的交互连接,后台运行的Jupyter内核进程不会因此终止,你的定时循环代码正运行在内核进程中;
    • 启动Jupyter Lab的终端窗口默认不会在关闭时连带杀死子进程,因此Jupyter服务和内核进程会继续后台运行。
  • 若希望关闭窗口后进程停止,可通过以下方式实现:
    1. 在Jupyter Lab界面内,手动中断对应内核(点击代码右上角的停止按钮,或通过「运行」菜单选择中断内核);
    2. 启动Jupyter时使用命令 jupyter lab --no-browser,结束时在终端按Ctrl+C停止服务,关联的内核进程会随之终止;
    3. 将代码保存为独立.py脚本,用python 脚本名.py直接运行,此时关闭终端窗口会默认终止该进程。

内容的提问来源于stack exchange,提问作者David Filler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 11:40:24