xshell退出时关闭了通过nohup启动的应用

我也是第一次遇到这种情况,我拿一台虚拟机帮同事开KT Connect的代码,并开启了一个端口转发,如下代码所示:


nohup ktctl --namespace=dev connect --method=socks5 --dump2hosts > ktctl.log 2>&1 &
nohup polipo -c /opt/polipo/config > polipo.log 2>&1 &

此时查看端口占用:


[root@node ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:2223          0.0.0.0:*               LISTEN      5214/ktctl          
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      873/sshd            
tcp        0      0 0.0.0.0:12345           0.0.0.0:*               LISTEN      5224/polipo         
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1028/master         
tcp        0      0 127.0.0.1:2222          0.0.0.0:*               LISTEN      5226/kubectl        
tcp6       0      0 :::22                   :::*                    LISTEN      873/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1028/master         
tcp6       0      0 ::1:2222                :::*                    LISTEN      5226/kubectl

端口都正常开启,且同事能够正常使用,我退出了xshell再进入,结果程序都被杀掉了。

最后网上说通过exit可以退出xshell而不影响通过nohup开启的进程。我目前不知道什么原因,先记录一下

参考资料

  1. nohup &不挂断运行之后退出xshell客户端会杀死nohup进程