Background Job "Stopped" with SSH

运行了一个后台程序,此程序调用SSH远程执行另外的任务,当多个这样的后台程序执行的时候,状态经常从Running 变为Stopped,导致程序中断。

解决办法,覆盖三个I/O,具体参考:http://en.wikipedia.org/wiki/Nohup

Overcoming hanging

Note - Nohupping backgroundedjobs is typically used to avoid terminating them when logging off from aremote SSH session. A different issue that oftenarises in this situation is that ssh is refusing to log off("hangs"), since it refuses to lose any data from/to the backgroundjob(s).[6][7] Thisproblem can also be overcome by redirecting all three I/O streams:

nohup./myprogram > foo.out 2> foo.err < /dev/null &

Also note that a closingSSH session does not always send a HUP signal to depending processes. Amongothers, this depends on whether a pseudo-terminalwasallocated or not.[8]


### 关于作业因意外退出码 0x00000001 停止的原因分析 当程序或脚本运行过程中返回 `exit code 0x00000001`,这通常表示存在某种未捕获的错误或异常情况。此退出码可能由多种原因引起,包括但不限于函数调用不匹配、内存访问冲突或其他逻辑错误。 #### 可能的原因 一种常见原因是由于函数调用参数类型不兼容所引发的问题[^1]。例如,在某些编程环境中,如果尝试调用重载函数而未能提供与任何声明版本完全一致的参数,则可能导致编译器无法解析该调用并抛出类似的错误消息。这种类型的错误不仅限于静态语言环境;即使是在动态解释型语言中也可能发生类似机制下的失败情形。 此外,操作系统层面的因素也不能忽视。比如资源耗尽(如过多打开文件句柄)、权限不足或者硬件故障都可能是潜在诱因之一。对于具体数值为 `0x00000001` 的终止状态而言,它往往意味着最基础级别的执行失败——即应用程序本身认为其核心操作未能成功完成因而主动结束进程生命周期作为响应措施的一部分表现形式。 #### 解决方案建议 为了有效处理此类问题,可以采取以下几个方向来进行排查和修复: 1. **审查代码中的所有外部依赖项及其接口定义** 确认每一个被调用的方法是否均按照预期提供了正确的输入数据结构以及相应的属性设置。特别注意那些支持多态特性的组件部分,因为它们更容易隐藏难以察觉的形式差异之处。 2. **增加详尽的日志记录功能** 在关键业务流程节点处加入更多细节化的调试信息输出语句,以便更好地理解实际发生的事件序列,并定位到确切出现问题的位置所在区域范围之内。 3. **测试边界条件下的行为模式** 设计专门针对极端情况下如何反应的一系列单元测试案例集合来验证系统的健壮程度。通过模拟各种可能出现但平时较少遇到的情况组合方式去暴露潜藏缺陷隐患点位。 4. **升级至最新稳定版软件包/库文件** 如果怀疑问题是来源于第三方模块内部实现上的漏洞的话,则考虑及时更新替换掉旧版本以获取官方已修正过的补丁改进成果。 以下是Python示例代码片段展示如何添加基本日志功能用于辅助诊断过程: ```python import logging logging.basicConfig(filename='app.log', level=logging.DEBUG) try: result = some_function(arg1, arg2) except Exception as e: logging.error(f"Error occurred while calling some_function: {e}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值