Linux(Centos7) 运行脚本程序,终端只返回 “已杀死”

在实验室服务器上运行代码时遇到“已杀死”问题,排除内存不足和OOM_killer因素后,通过监控进程发现并确认为病毒攻击,最终交由网管处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在实验室服务器上跑代码,没跑多久就显示:已杀死,而且只显示已杀死,没有任何其他打印和日志。

1、确定不是代码的bug。

2、网上搜了一大堆,全说是OOM的问题,就是代码消耗内存太多,被OOM_killer杀死。但是我用的服务器内存确定充足(350g内存,且没有其他应用程序运行),不存在内存不够的情况。但是按照网上的处理教程,最终极的就是关闭OOM_killer,问题仍然存在。

3、从观察系统中的进程入手(top),发现一个非常可疑的进程,如下图红线标出:

COMMAND:XXX ???继续ps -aux

然后 kill -9 38652,它竟然重启,自动重启!!!

石锤病毒,交给网管处理。

### 解决方案概述 在 CentOS 7 中遇到程序无法通过 `Ctrl+C` 正常终止的情况,通常是因为该程序捕获并忽略了 SIGINT 信号[^1]。为了使 `Ctrl+C` 可以正常工作,可以采取多种方法来调整程序的行为。 #### 方法一:修改程序内部逻辑 对于 Python 程序而言,如果发现 `Ctrl+C` 无法终止脚本,可能的原因在于程序中存在异常处理机制阻止了默认行为的发生[^2]。可以通过改进代码中的异常捕捉部分实现更合理的中断响应: ```python import signal import sys def signal_handler(sig, frame): print('You pressed Ctrl+C!') sys.exit(0) signal.signal(signal.SIGINT, signal_handler) print('Press Ctrl+C') signal.pause() ``` 这段代码定义了一个自定义的信号处理器,在接收到 SIGINT 后打印一条消息并退出程序。 #### 方法二:外部强制结束进程 当面对那些即使经过上述优化仍然难以被 `Ctrl+C` 停止的应用时,可以从操作系统层面入手解决问题。使用命令行工具如 `killall` 或者 `pkill` 来发送更强力的终止指令给目标应用[^4]: ```bash killall -9 your_program_name # 或者 pkill -f "your program name" ``` 请注意 `-9` 参数代表的是无条件杀死指定进程的方式,这可能会造成数据丢失的风险,请谨慎使用。 #### 方法三:配置 Shell 的 Trap 功能 有时应用程序本身并没有做特殊处理,而是由于 shell 环境设置了特定的 trap 导致 `Ctrl+C` 失效。此时可以在启动前临时改变这些设置以便恢复正常控制键功能[^5]: ```bash trap '' INT # 忽略 SIGINT ./your_application & disown $! # 将作业移到后台且不再受终端影响 trap 'echo Got it' INT # 设置新的 SIGINT 行为 ``` 以上三种方式可以根据实际情况灵活选用,从而有效解决 Linux 下特别是 CentOS 7 平台上某些情况下 `Ctrl+C` 不起作用的问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值