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

SSH中执行gcore及远程服务器进程core dump相关技术问询

嘿,我来帮你搞定这两个关于gcore和远程生成core dump的问题:

1. 能否在SSH会话中执行gcore命令?

当然可以!不过你得满足两个关键前提:

  • 你要么是目标进程的所有者,要么是以root身份登录远程服务器;
  • 远程服务器没有禁用core dump功能:可以先执行ulimit -c查看,如果输出是0,说明被禁用,临时开启的话可以执行ulimit -c unlimited,要是想永久生效,得修改/etc/security/limits.conf文件添加相关配置。

操作起来很直观:先SSH登录远程机器,比如ssh your_username@remote_host_ip,之后直接运行你的示例命令就行:
gcore -o /tmp/core 24635
执行完后,core文件就会出现在远程服务器的/tmp目录下。

2. 从本地机器为远程进程生成core dump的方法

必须有办法!这里给你两种实用的方案:

方案一:通过SSH直接远程执行gcore命令

这是最省心的方式,不用额外配置。直接在本地终端里让SSH帮你远程运行gcore:
ssh your_username@remote_host_ip "gcore -o /tmp/core 24635"
要是想把生成的core文件拉回本地,接着用scp就行:
scp your_username@remote_host_ip:/tmp/core.24635 ./your_local_folder/

注意:同样得满足权限和ulimit的要求,如果远程SSH用了非默认端口(比如2222),记得加上-p参数,比如ssh -p 2222 your_username@remote_host_ip "gcore -o /tmp/core 24635"。

方案二:通过gdb远程调试生成core dump

如果需要更灵活的调试操作,或者不想直接在远程执行命令,可以试试这种方式:

  1. 先在远程服务器上启动gdbserver,绑定一个端口并附加到目标进程(需要对应权限):
    gdbserver :1234 --attach 24635
    这里的1234是自定义端口,记得确保远程服务器的防火墙允许这个端口的TCP连接。

  2. 在本地终端打开gdb,连接到远程的gdbserver:
    gdb -ex "target remote remote_host_ip:1234"

  3. 连接成功后,在gdb的交互界面里执行生成core文件的命令:
    generate-core-file /tmp/remote_core
    也可以简写为gcore /tmp/remote_core

  4. 完成后用scp把远程的core文件拉回本地,之后输入quit断开gdb连接,远程的gdbserver也会随之停止(目标进程会继续运行,除非你在gdb里做了其他终止操作)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:41:54