接下来,我们在/tmp目录下创建一个.attach_pid6617文件,如下
接下来,我们使用kill命令向进程发送退出信号....比如上文中,我们使用kill向指定的进程6617发送的3号退出信号,就是由进程6617中的Signal Dispatcher线程来处理的....而通过Unix Domain Socket创建出来的6号文件描述符,它就是由Attach Listener这个线程来使用的. 这个Attach Listener线程作为服务端,监听客户端的请求....第三种方式,通过C语言的方式, 之所以通过C语言的方式,旨在说明一点,不管我们使用的是jstack命令,还是上面的Java程序,或者阿里开源的Arthas(阿尔萨斯)工具,在它们的底层,都是通过同一种方式与目标...在我们的C语言代码里
// 创建Unix Domain Socket用于本机进程间通信
fd = socket(PF_UNIX, SOCK_STREAM, 0);
// 连接服务器.