作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO
联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬
学习必须往深处挖,挖的越深,基础越扎实!
阶段1、深入多线程
阶段2、深入多线程设计模式
阶段3、深入juc源码解析
码哥源码部分
码哥讲源码-原理源码篇【2024年最新大厂关于线程池使用的场景题】
码哥讲源码-原理源码篇【揭秘join方法的唤醒本质上决定于jvm的底层析构函数】
码哥源码-原理源码篇【Doug Lea为什么要将成员变量赋值给局部变量后再操作?】
码哥讲源码【谁再说Spring不支持多线程事务,你给我抽他!】
打脸系列【020-3小时讲解MESI协议和volatile之间的关系,那些将x86下的验证结果当作最终结果的水货们请闭嘴】
查看后台rabbitmq服务进程
可以看到一共有五个进程,其中PID为155(/usr/lib64/erlang/erts-10.5.6/bin/epmd -daemon)的进程是Erlang虚拟机的一个守护进程,与RabbitMQ节点一起运行,运行时使用它来发现特定节点监听端口;其它四个节点属于父子节点的关系;
停止Erlang虚拟机和RabbitMQ应用服务
#停止erlang虚拟机和RabbitMQ应用服务器
rabbitmqctl stop
查看Erlang虚拟机和RabbitMQ应用服务停止后的进程情况
[root@rabbit3 /]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 11836 2804 pts/0 Ss+ Dec10 0:00 /bin/bash
rabbitmq 155 0.0 0.1 50896 3520 ? S Dec10 0:00 /usr/lib64/erlang/erts-10.5.6/bin/epmd -daemon
root 43981 0.0 0.1 11836 3140 pts/1 Ss 02:49 0:00 bash
root 53569 0.0 0.1 51760 3472 pts/1 R+ 05:42 0:00 ps aux
可以看到erlang虚拟机和RabbitMQ停止服务后,其它四个进程都消失了,只剩下一个epmd守护进程在运行。
仅仅停止RabbitMQ应用服务器,不停止Erlang虚拟机
rabbitmqctl stop_app
查看进程情况
[root@rabbit3 /]# ps auxf
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 5321 0.0 0.1 11836 3064 pts/1 Ss 07:36 0:00 bash
root 5549 0.0 0.1 51756 3504 pts/1 R+ 07:38 0:00 \_ ps auxf
rabbitmq 3711 1.0 4.1 2204860 84368 ? Sl 07:05 0:20 /usr/lib64/erlang/erts-10.5.6/bin/beam.smp -W w -A 64 -
rabbitmq 3778 0.0 0.0 4364 1360 ? Ss 07:05 0:00 \_ erl_child_setup 1048576
rabbitmq 3797 0.0 0.0 11600 944 ? Ss 07:05 0:00 \_ inet_gethost 4
rabbitmq 3798 0.0 0.0 13724 1720 ? S 07:05 0:00 \_ inet_gethost 4
rabbitmq 162 0.0 0.0 49048 1800 ? S 06:07 0:00 /usr/lib64/erlang/erts-10.5.6/bin/epmd -daemon
root 1 0.0 0.1 11836 2932 pts/0 Ss+ 06:06 0:00 /bin/bash
可以看到RabbitMQ应用服务停止的时候进程没有发生任何变化,个人理解rabbit应用是建立在Erlang虚拟机节点之上,rabbit应用启动不会创建单独的进程表现到操作系统。如果有正确的答案请留言,谢谢!