gpt4 book ai didi

Windows上的Ruby脚本进程监控

转载 作者:可可西里 更新时间:2023-11-01 10:23:51 26 4
gpt4 key购买 nike

我想在 Windows 上远程监控我的 ruby​​ 脚本进程。我确实知道如何在基于 unix 的系统上使用 god 或类似的监控框架来做到这一点,但问题是我想在 windows 上使用它。

基本上,我想做几件事:

  • 监控脚本是否运行
  • 如果脚本停止,应该重新启动
  • 将脚本的状态发送到远程服务器(这个不是很重要,我可以自己写这个选项)

也许有人可以建议。

请注意,我更喜欢用 ruby​​ 编写监控解决方案,这样我可以进一步扩展它。

最佳答案

我在论坛上找到这个www.ruby-forum.com并稍微调整一下,您可以看到进程(脚本)是否仍在运行。我想重新启动并报告您可以自己处理?

require 'WIN32OLE'

procs = WIN32OLE.connect("winmgmts:\\\\.")
procs.InstancesOf("win32_process").each do |p|
puts p.commandline if p.name == 'ruby.exe'
end

这里是可用的属性

class Win32_Process : CIM_Process
{
string Caption;
string CommandLine;
string CreationClassName;
datetime CreationDate;
string CSCreationClassName;
string CSName;
string Description;
string ExecutablePath;
uint16 ExecutionState;
string Handle;
uint32 HandleCount;
datetime InstallDate;
uint64 KernelModeTime;
uint32 MaximumWorkingSetSize;
uint32 MinimumWorkingSetSize;
string Name;
string OSCreationClassName;
string OSName;
uint64 OtherOperationCount;
uint64 OtherTransferCount;
uint32 PageFaults;
uint32 PageFileUsage;
uint32 ParentProcessId;
uint32 PeakPageFileUsage;
uint64 PeakVirtualSize;
uint32 PeakWorkingSetSize;
uint32 Priority;
uint64 PrivatePageCount;
uint32 ProcessId;
uint32 QuotaNonPagedPoolUsage;
uint32 QuotaPagedPoolUsage;
uint32 QuotaPeakNonPagedPoolUsage;
uint32 QuotaPeakPagedPoolUsage;
uint64 ReadOperationCount;
uint64 ReadTransferCount;
uint32 SessionId;
string Status;
datetime TerminationDate;
uint32 ThreadCount;
uint64 UserModeTime;
uint64 VirtualSize;
string WindowsVersion;
uint64 WorkingSetSize;
uint64 WriteOperationCount;
uint64 WriteTransferCount;
};

关于Windows上的Ruby脚本进程监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23702680/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com