我有一个在远程计算机上运行的程序,该程序希望从父计算机接收SIGINT。该程序需要接收该信号才能正常运行。不幸的是,如果我通过SSH远程运行该进程并发送SIGINT,则ssh进程本身会捕获并中断,而不是转发信号。

这是使用GDB的这种行为的示例:

在本地运行:

$ gdb
GNU gdb 6.3.50-20050815(Apple版本gdb-1344)(UTC 2009年7月3日01:19:56)
...
该GDB被配置为“x86_64-apple-darwin”。
^ C
(gdb)退出
^ C
(gdb)退出
^ C
(gdb)退出

远程运行:

$ ssh foo.bar.com gdb
GNU gdb Red Hat Linux(6.3.0.0-1.159.el4rh)
...
该GDB被配置为“i386-redhat-linux-gnu”。
(gdb)^ C
被信号杀死2。
$

有人可以建议解决此问题的方法吗?本地ssh客户端为OpenSSH_5.2p1。

最佳答案

$ ssh -t foo.bar.com gdb
...
(gdb)^ C
放弃

关于ssh - 如何通过SSH将SIGINT发送到远程进程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1512132/

10-16 06:11