【发布时间】:2020-06-08 19:27:31
【问题描述】:
我们已经在 Ubuntu 16.04 中正确配置了我们的 stunnel,并且它正在正确启动,我们正在从 stunnel 服务器获取我们的应用程序中的数据。虽然我找不到任何合适的方法来阻止 stunnel。我尝试杀掉 stunnel 的 pid,但是杀掉 pid 并不是正确的停止方式。
谢谢
【问题讨论】:
标签: stunnel
我们已经在 Ubuntu 16.04 中正确配置了我们的 stunnel,并且它正在正确启动,我们正在从 stunnel 服务器获取我们的应用程序中的数据。虽然我找不到任何合适的方法来阻止 stunnel。我尝试杀掉 stunnel 的 pid,但是杀掉 pid 并不是正确的停止方式。
谢谢
【问题讨论】:
标签: stunnel
可能有多个stunnel 进程:
[root@someserver ~]# ps aux | grep stunnel | grep -v grep | awk '{print $2}'
13527
13528
13529
13530
13531
13532
下面的 bash-one-line 循环可以将它们全部杀死:
if kill $(ps aux | grep stunnel | grep -v grep | awk '{print $2}'); then echo "Done"; else echo "No ps left"; fi
【讨论】:
杀死 PID 听起来很糟糕,但它是 linux 中停止进程的常用方法。 “Kill”只是“发送信号”的别称。如果您发出kill $pid,则会向该进程发送一个 SIGTERM。
然后该进程可以处理该信号并执行干净的关闭。这也是许多程序实现配置重新加载功能的方式,他们经常为此使用 SIGHUP (kill -SIGHUP $pid)。
因此,只要您不使用kill -SIGKILL $pid(或简而言之:kill -9 $pid),程序就可以处理该信号并正常关闭。
更多关于 linux 上的信号:https://en.wikipedia.org/wiki/Signal_(IPC)#List_of_signals
【讨论】: