问题标签 [process-management]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 你怎么知道一个进程已经运行了多长时间?
有没有办法从/proc
目录中获取这些信息?我希望能够获得每个进程在几秒钟内运行了多长时间。
编辑:我需要从 C++ 中做到这一点。对困惑感到抱歉。
unit-testing - 业务流程“观察者”应用程序
我的客户要求在其业务流程之一因任何原因失败时得到通知。我有编写一个单独的应用程序的想法,它将作为“观察者”运行并检查流程的各个部分。
例如,生成每日文件并将其上传到 FTP 位置。“观察者”可能有以下“测试”:
- 连接到 FTP
- 转到文件应该存在的文件夹
- 查找具有命名约定的文件
- 验证文件的创建日期
任何步骤的失败都会发送警报电子邮件并记录到报告中(如果数据库已关闭或电子邮件已关闭)。
我的问题是....有没有任何产品可以做到这一点?如果那里有坚固的东西,我宁愿购买。如果不是,这几乎就像一个单元测试平台......有什么可以用来测试的东西我可以重新利用吗?
作为仅供参考,我们是一家基于 Microsoft/Windows 的商店。
提前谢谢!
php - 运行非常长的脚本 - 如果它们失败,如何保持它们运行并重新启动它们?
我需要在 CENTOS 服务器上运行一堆长时间运行的进程。
如果我让进程(python/php 脚本)运行,有时进程会因为一些小错误而停止运行,例如。字符串编码问题,或者有时是因为进程似乎被服务器杀死了。
我尝试使用 nohup 并从 crontab 中解雇工作
有什么方法可以让这些进程以保存所有变量的方式运行,并且我可以从它停止的地方重新启动脚本?
我知道我可以将它编程到代码中,但更喜欢通用实用程序,它可以让这些东西保持运行,以便脚本完成,即使有微不足道的错误。
也许我需要某种流程管理工具?
非常感谢您的任何建议
c++ - C++ 中的任务监视器和管理器
我正在寻找使用 Win32 API 构建任务监视器/管理器。它将使用命令行参数启动(最好作为 Windows 服务),指定它应该启动多少个新进程的实例。
将启动 40 个进程实例
现在,每当 task.exe 退出(正确与否)时,我都必须启动一个新的来替换它。
我粗略的想法是这样的:
从 task_man 启动任务,获取它们的 PID,然后有一个循环来检查 PID 是否都是活动进程。对于每个无效的 PID,启动一个新进程并用新的 PID 替换旧的 PID。
有没有更好的设计我可以使用,或者更好的工作流程?有这样做的标准方法吗?我不想重新发明轮子……另外,我应该研究哪些 API?
我也在寻找一种以后容易改变的设计——即如果我跑步
之后,新的 task_man 不应该开始运行,而是应该更改前一个实例中的任务数。(我知道它会开始运行,我说的应该修改原来的然后退出)
我不是在寻找代码(因为我不是在寻找完整的实现,不是我介意查看示例),而是我可以使用哪些 API,或者对我提出的整体设计的建议。
android - 你能追踪一个安卓应用程序何时被终止吗?
查看了 android 文档,似乎我们无法知道应用程序何时关闭。它是由用户显式执行的,还是由操作系统自动执行的。
以下是仅在模拟场景中可用的onTerminate()
文档。
自:API 级别 1
此方法用于模拟过程环境。它永远不会在生产 Android 设备上调用,在这些设备上,只需杀死进程即可删除它们;这样做时不会执行任何用户代码(包括此回调)。
当用户关闭应用程序时,是否有任何其他方法可以报告?
我们需要从试点/可用性的角度了解我们是否需要将其他功能合并到我们未来的生产应用程序中。
java - 使用控制组管理 Java 进程
是否有人已经使用 Linux 控制组 (cgroup) 来管理 Java 进程?我正在尝试分析 CPU 时间利用率(感谢 cpuacct.usage 文件),但我无法获得除 0 以外的其他值...
c++ - 基于上一个任务的 sigchld() 执行新任务
我目前正在用 C++ 构建一个小 shell。
用户可以在提示符处输入作业,例如exe1 && exe2 &
。与 BASH shell 类似,我只会exe2
在exe1
成功退出时执行。此外,整个作业必须在后台执行(由尾随&
操作员指定)。
现在,我有一个jobManager
处理作业执行的job
结构和一个包含作业的可执行文件及其各个参数/条件的结构。通过调用开始作业fork()
,然后execvp()
使用适当的参数调用。当作业结束时,我有一个信号处理程序,SIGCHLD
我在其中执行wait()
以确定哪个进程刚刚结束。结束时exe1
,我观察它的退出代码并确定我是否应该继续启动exe2
。
我关心的是如何启动exe2
. 我担心如果我从处理程序的上下文中使用我的 jobManager 启动函数SIGCHLD
,我最终可能会在堆栈上挂出太多的SIGCHLD
处理程序函数(例如,如果有 10 个条件执行)。此外,从信号处理程序开始下一次执行似乎不是一个好主意,即使它是间接发生的。(1.5 年前,当我刚刚学习信号处理时,我尝试做类似的事情——我似乎记得它对我失败了)。
以上所有内容都需要能够在后台发生,我想避免jobManager
坐在忙碌的等待中等待exe1
返回。我也希望不要有一个单独的线程只是等待开始执行另一个进程。但是,指示我jobManager
从处理程序开始执行下一个进程SIGCHLD
似乎是糟糕的代码。
任何反馈都会被应用。
linux - Linux 中的资源清理
如何在进程终止时清理进程(进程 A)分配的所有资源?进程A在使用其他进程提供的服务时,可能会在其他进程空间分配资源(A将使用IPC访问其他进程提供的服务)。
是否有任何可用的标准机制/框架?我的进程在 Linux 环境中运行。
谢谢,登
c# - 管理运行流程
我有一个在我的计算机上运行的控制台应用程序。当应用程序抛出异常时,我想重新启动应用程序。我怎样才能做到这一点?