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

linux-如何通过SSH将SIGINT(Ctrl-C)发送到当前远程进程(不带-t选项)

我需要向SSH会话中在前台运行的远程进程发送SIGINT.

SSH会话已经建立,因此我无法使用启动它的选项(如How to send SIGINT to a remote process over SSH?中所述)

ssh -t user@host

我知道我可以打开第二个ssh会话并终止进程或关闭当前的ssh会话,但是我想避免这种情况并直接抛出当前的会话(如果可能的话).

解决方法:

如果您使用ssh在远程系统上启动没有PTY的进程,那么据我所知,无法通过该ssh会话向远程进程发出信号.

SSH协议的编号为message to send a signal to the remote process.但是,您可能将OpenSSH用于客户端或服务器,或同时用于两者,并且OpenSSH不会实现信号消息.因此,OpenSSH客户端无法发送消息,并且OpenSSH服务器也不会对此进行操作.

OpenSSH支持SSH extension to send a “break” message.在交互式会话中,OpenSSH客户端具有escape sequence,您可以键入以将中断发送到服务器. OpenSSH服务器通过将中断发送给远程会话的PTY来处理中断消息,而Unix PTY通常会将中断视为SIGINT.但是,中断从根本上讲是TTY的概念,对于没有PTY的远程会话,这都不起作用.

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

相关推荐