近视的桔子 · 尼可地尔联合替罗非班对急性ST段抬高型心肌梗 ...· 5 月前 · |
温柔的红薯 · 杭温高铁、金建铁路、杭州东西向最长快速路…… ...· 8 月前 · |
小胡子的单杠 · 我是苏信,言而有信的信《最强BOOS系统》国 ...· 1 年前 · |
打篮球的拐杖 · 大众中国上半年销量为145.19万辆,新能源 ...· 1 年前 · |
酒量大的洋葱 · 万向集团创始人鲁冠球逝世 ...· 1 年前 · |
我有一个Solaris服务器运行一个进程,它的输入和输出被重定向到FIFO管道(fifo_in,fifo_out)。
如何通过ssh连接这两条管道?
我希望能够通过ssh向fifo_in管道写入,让Solaris进程执行它通过管道接收的命令,然后通过fifo_out接收进程的输出。
我可以通过ssh或ftp连接到Solaris服务器。不确定它是否安装了netcat,但据我在网上所读到的,这似乎不太可能。
编辑:我想通过python (在客户机上)完成所有这些工作,这样我就可以解析来自Solaris进程的数据。
发布于 2018-11-15 16:31:53
事实证明,由于Python抛出了一个IOerror,所以不能在ssh上直接打开unix管道。经过一番争吵后,我的结果如下。使用Python/Paramiko,我在Solaris服务器上运行这些命令(通过SSH):
mkfifo input
sleep 10800 > input &
这将创建输入管道,“睡眠”确保管道保持打开(10800为3小时(秒数))。如果不使用睡眠,则在第一次向其传递一批命令后,管道将关闭。
我通过ssh发送它来运行我的进程:
nohup process_name < input > output.txt &
这将启动进程,将输入管道附加到它的stdin,并将其输出到一个简单的文本文件output.txt。如果断开ssh会话,nohup将确保进程保持活动状态。
注意:我最初也打算使用输出管道,但是由于我不能通过SSH打开管道,所以使用管道没有好处。我仍然使用管道作为输入,因为这样可以确保我的进程在发送命令时继续接受命令。
输出很容易从output.txt中读取,但是对于输入,我发送每一批命令(我希望进程执行这些命令)。首先,Python脚本使用名为redir.txt的新批命令创建一个文本文件,然后将该文本文件的内容发送到管道中:
cat redir.txt > input
这首先将命令重定向到输入管道,然后进程从管道读取命令。
https://unix.stackexchange.com/questions/480870
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287