透明的信号通过SSH

透明地我的意思是转发:

  • stdinstdoutstderr
  • 标准信号( SIGHUPSIGINT将是伟大的一开始)

作为一个例子,考虑一下(无意义的)本地和远程命令的调用:

 $ `cat - > /dev/null; sleep 10` < /local/file $ ssh user@host "cat - > /dev/null; sleep 10" < /local/file 

我可以用^C打断第一个。 但是,如果我在第二个尝试这个,它只会影响ssh ,如果cat已经完成,留在远程服务器上运行的命令。

我知道用-t启动ssh ,但是这样我不能通过stdin发送数据。 这完全可以用ssh吗?

信号是本地内核的领域; 他们从来没有通过networking链接。

虽然可以从本地计算机的远程ssh会话中运行命令,但这并不会使远程计算机上的系统级事件在本地可用。

你将不得不把所有的东西都包装在一个脚本中,这个脚本会捕获所有(可能的)信号,并通过ssh连接传回来,但是即使这样,它们也不会再神奇地变成信号。

也许涉及nc东西更适合于洗牌std {in | out | err}; 这也不是ssh工具集的一部分。