首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Autosys: KILLJOB事件离开孤立进程

Autosys: KILLJOB事件离开孤立进程
EN

Stack Overflow用户
提问于 2012-07-06 22:04:46
回答 1查看 5.8K关注 0票数 1

我在Windows服务器上运行各种进程(混合了批处理文件、java、perl、csharp脚本/应用程序)。这些进程是使用Autosys启动的。Windows上的autosys代理总是在作业定义中提供的命令前面加上'cmd /c‘前缀(参见下面的示例)

代码语言:javascript
复制
C:\Windows\system32\cmd.exe /C foobar.exe

这本身并不是问题,但是当我试图通过发送一个autosys KILLJOB事件(根据Autosys文档向进程发送一个中断,然后是kill信号)来终止作业时,foobar.exe不会被终止,而是父cmd.exe被终止。foobar.exe最终成为一个孤立进程,然后我们需要登录到服务器,使用任务管理器手动终止它。

有没有什么解决方案可以让来自autosys的终止信号传播到实际的进程中?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-20 03:37:23

这是处理Windows Autosys作业时的一个已知错误。这是来自Autosys R11参考手册。我从未尝试过使用此修复程序。祝好运。

在不使用cmd.exe的情况下,foobar.exe是否可以运行?我会尝试一下,看看KILLJOB事件是否正常工作。

Windows不支持进程组的概念。当您为运行可执行文件(.exe)的作业发出KILLJOB事件时,KILLJOB将终止命令定义中指定的进程。当您为运行*.exe以外的其他内容(例如,*.bat、*.cmd或.com)的作业发出KILLJOB事件时,KILLJOB仅终止CA Workload Automation AE用来启动作业的CMD.EXE进程。作业状态是根据已终止的CMD.EXE进程的返回代码设置的,可以是以下值之一:成功、失败或已终止。由用户应用程序或批处理(.bat)文件启动的进程不会被终止。要解决此限制,您可以修改您的程序,以监视来自Windows计算机上运行的CA Workload Automation AE作业的信号,并且您可以为SEND_SIGNAL事件实现此参数。*

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11363774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档