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

如何停止远程Linux服务器虚拟环境中运行的Python脚本?

停止远程服务器上运行的Python脚本的方法

1. 前台运行时直接中断

如果启动脚本后你还保持着当前终端会话,直接按下 Ctrl + C 就能发送中断信号,终止脚本运行。
要是脚本被你放到后台运行(比如启动时加了&),可以先执行 fg 命令把它调回前台,再按 Ctrl + C 停止。

2. 通过进程ID(PID)强制终止

  • 先找到目标Python进程的PID,执行命令:
    ps aux | grep main.py
    
    输出结果里第二列的数字就是进程的PID。
  • 用kill命令终止进程:
    kill <PID>
    
    如果进程无响应,用强制终止命令:
    kill -9 <PID>
    
  • 也可以直接按脚本名批量终止:
    pkill -f main.py
    
    注意:如果服务器上有同名脚本,确认后再执行,避免误杀其他进程。

3. 给脚本添加优雅退出机制

在Python脚本里加入信号处理逻辑,这样收到中断信号时能先清理资源再退出:

import signal
import sys

def handle_exit(sig, frame):
    print('开始清理资源并退出...')
    # 这里可以添加关闭文件、数据库连接等清理操作
    sys.exit(0)

# 绑定SIGINT信号(对应Ctrl + C)
signal.signal(signal.SIGINT, handle_exit)

# 你的原有脚本代码

4. 用进程管理工具长期管理脚本

如果脚本需要长期运行,推荐用screen/tmux或者systemd来管理:

方法一:使用screen

  • 安装screen(以Debian/Ubuntu为例):
    sudo apt install screen
    
  • 创建新会话:
    screen -S script_session
    
  • 在会话内激活虚拟环境并启动脚本
  • 临时断开会话按 Ctrl + A 再按 D
  • 重新连接会话:
    screen -r script_session
    
    之后按Ctrl + C就能停止脚本。

方法二:配置systemd服务

  • 创建服务文件/etc/systemd/system/python-script.service:
    [Unit]
    Description=自定义Python脚本服务
    After=network.target
    
    [Service]
    User=你的用户名
    WorkingDirectory=/脚本所在的绝对路径
    ExecStart=/虚拟环境路径/bin/python main.py
    Restart=no
    
    [Install]
    WantedBy=multi-user.target
    
  • 重新加载systemd配置:
    sudo systemctl daemon-reload
    
  • 启动服务:
    sudo systemctl start python-script
    
  • 停止服务:
    sudo systemctl stop python-script
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 13:27:13