除了杀死 pid 之外,如何在 linux 服务器(仅使用终端)中停止 stunnel

How to stop stunnel in linux server(using terminal only), other than killing pid

我们在 Ubuntu 16.04 中正确配置了我们的 stunnel,它也正常启动,我们正在从 stunnel 服务器获取应用程序中的数据。虽然我找不到任何合适的方法来阻止 stunnel。我尝试杀死 stunnel 的 pid,但杀死 pid 不是停止的正确方法。

谢谢

杀死 PID 听起来很糟糕,但这是 linux 中停止进程的常用方法。 "Kill" 只是 "send signal" 的别名。如果您发出 kill $pid,则会向该进程发送一个 SIGTERM。 然后该进程可以处理该信号并执行干净关闭。这也是许多程序实现配置重新加载功能的方式,他们经常为此使用 SIGHUP (kill -SIGHUP $pid)。

因此,只要您不使用 kill -SIGKILL $pid(或简而言之:kill -9 $pid),程序就可以处理该信号并正常关闭。

更多关于 linux 上的信号:https://en.wikipedia.org/wiki/Signal_(IPC)#List_of_signals

可能有几个 stunnel 进程:

[root@someserver ~]# ps aux | grep stunnel | grep -v grep | awk '{print }'
13527
13528
13529
13530
13531
13532

下面的 bash-一行循环可以杀死他们:

if kill $(ps aux | grep stunnel | grep -v grep | awk '{print }'); then echo "Done"; else echo "No ps left"; fi