我的Windows服务(C#)有一个很大的问题。我们在一些服务器(从windows2012r2到Ubuntu)上进行了系统更改,对于所有这些服务器,我编写了一个监控工具,作为在windows服务器上运行的windows服务。在这个服务中,我在服务器上检查了一些东西,它们工作得很好。我必须检查的一件事是state = running中是否有一些特殊的windows服务(例如iis)。
那么,有没有可能从我的监控服务中以编程方式检查Ubuntu服务?我可以在Ubuntu shell上设置命令吗?或者创建一个bat文件?
ServiceController sc = new ServiceController("servicename", "ubuntu-IP"))我猜是因为Windows != Ubuntu,所以用ServiceController不能工作吧?!
这应该是一种“简单”的方式--所以如果它太华丽了,我就不去做了。
任何信息都将不胜感激。
发布于 2016-01-21 21:41:14
编辑:完全重写,我误解了这个问题。
Linux不像Windows那样使用服务,首先,没有像在Windows域中那样的基础设施来远程检查和管理服务。
您有两个选项:
1-使用具有管理员权限的帐户通过SSH连接,并发出"service (servicename) status",无论服务是否正在运行,都会显示此状态。要通过SSH连接,服务器必须配置一个SSH服务器,并使用一些用于SSH连接的C#库(例如:https://sshnet.codeplex.com/)
2-创建一个C#服务并在你的服务器上使用Mono,这样服务就可以在本地执行像"ps“这样的命令,或者使用Process.GetProcesses(),然后你可以用你最喜欢的方式将这个进程与你的Windows进程通信,例如TCP或UDP。
https://stackoverflow.com/questions/34925213
复制相似问题