4
ssh死后,ssh产生的终止进程
这个问题不仅在这里而且还在堆栈交换网络的其他站点中都已多次解决(例如,当我中断ssh本身时,如何使ssh杀死远程进程? )。但是,我无法使任何解决方案对我有用。 我正在通过ssh运行命令。每当我退出ssh时,我都希望命令也消失。此命令是一个名为ktserver的守护程序,它将无限期运行,直到您按Ctrl-C为止。 我按如下方式运行它:ssh -t compute-0-1 ktserver实际上,当我按Ctrl-C时,该过程正常结束,ssh会话结束。 但是,如果我不使用Ctrl-C而是使用kill命令杀死ssh进程(例如,发送SIGINT或SIGHUP),则该ktserver进程仍然有效。 我该如何使ktserver永远死亡独立于如何ssh被杀? 编辑:如果不是代替ktserver我运行完全不同的操作(例如)gedit,那么一切都像超级按钮一样工作(即,当连接断开时,gedit断开)。因此,流程本身可能有问题。例如,我认为它可能会忽略SIGHUP或SIGINT。但是,当我运行kill -1 ktserver或时kill -2 ktserver,该过程按预期方式终止。 编辑2:正如Mark Plotnick所指出的那样,问题与ssh通道上没有通信流通这一事实有关。我已经通过运行ssh -t <host> read并终止ssh进程来确认。read还活着,踢着。