微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从一个Windows服务在Linux上运行脚本?

有没有人知道从C#编写的Windows服务启动一个bash脚本(在Linux机器上运行)的优雅方式?

我只能想到一些putty组合自动login和login时自动运行命令。 但是这看起来很笨拙,有点不安全。

因为这两个盒子驻留在企业防火墙内部的局域网中,所以安全性不需要太高。 只有系统pipe理员可以login到Windows框。

如何在Windows注销后继续运行C#应用程序

获取有关Windows服务的内部状态的信息

开始调用uac服务

Windows服务,与app.config中的appSettings奇怪的行为

WCF的Windows服务停止

使用installutil从具有多个服务的可执行文件安装单个服务

Windows服务启动参数

GetNumberOfEventLogRecords返回的事件日志数量不正确

尝试安装Windows服务时看不到我的服务安装程序

运行在C#窗口服务的EXE

您可以使用带密钥身份验证的SSH来运行命令,而不必在应用程序中输入或存储密码。 您必须在Linux SSH服务器中启用密钥验证(请按照此处的说明创建密钥并将其存储在服务器上的相应位置),然后您可以运行

plink -i <key_location> user@machine "command"

在你的应用程序中通过Process.Start()

plink是与PuTTY捆绑在一起的命令行工具。

编辑:如果你不想PKI(这可能不是一个好主意,但你知道你的环境),你可以在Linux中设置一个rsh服务器,并通过rsh发送命令( Cygwin的rsh可能会更好地与Linux机箱)

如果它们位于防火墙之后,则可以在Linux机器上创建一个等待给定端口上的命令的迷你服务器。 Windows可以telnet到该端口并发送命令。

如果linux系统运行的是samba,你可以使用魔术脚本http://oreilly.com/catalog/samba/chapter/book/ch08_02.html

我可能会在Linux上运行一个网络服务器,并通过http请求运行脚本

我用Cygwin做这个包括ssh和cron的可选包。 几乎和使用真正的Unix机器一样优雅。

既然你问了一些C#中很容易使用的东西,webserver方法可能是最好的:快速简单,不需要密码。 在/ var / www / cgi-bin中设置Linux脚本,并用C#魔法启动它以打开http套接字并调用http:// hostname / cgi-bin / programname 。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐