发布网友 发布时间:2022-04-22 10:48
共2个回答
懂视网 时间:2022-04-15 19:03
bitsCN.comLinux daemon & mysqld
不严格的讲、daemon 就是服务、可分 2 类:
① stand alone
② super daemon
再不严格的讲、服务对应端口、那....那、daemon就对应了端口...?
我们可从 /etc/services 查询他们的对应关系:
[plain]
/*第一列为 daemon 的名称
第二列则是 port
*/
[root@odd ~]# cat /etc/services | grep -i --color=auto 'mysql'
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
mysql-cluster 1186/tcp # MySQL Cluster Manager
mysql-cluster 1186/udp # MySQL Cluster Manager
mysql-im 2273/tcp # MySQL Instance Manager
mysql-im 2273/udp # MySQL Instance Manager
这 2 者主要的区别是:
● stand alone :一直开放连接
● super daemon:有请求时才建立连接
[plain]
[mysql@odd ~]$ mysqld_safe &
[1] 5230
[mysql@odd ~]$ 130610 14:40:14 mysqld_safe Logging to '/home/mysql/mysql/log/alert.log'.
130610 14:40:14 mysqld_safe Starting mysqld daemon with databases from /home/mysql/mysql/data
[root@odd ~]# netstat -lntp | grep :3306
tcp 0 0 :::3306 :::* LISTEN 5550/mysqld
由此、可判断、mysqld 属于 stand alone
一般、mysqld 的启动脚本在 /etc/init.d/ 目录下、PS:实际上、大部分daemon的启动脚本都在这
另外、mysqld 的PID 文件一般在 /var/run/ 目录下、不过、我是源码编译自定义、我的在 datadir 目录下
bitsCN.com
热心网友 时间:2022-04-15 16:11
docker run指定的命令如果不是那些一直挂起的命令(比如运行top,不断echo),就是会自动退出的。-d命令是设置detach为true,根据官方的文档,意思是让这个命令在后台运行,但并不是一直运行(我们在一个正常的Linux Terminal中运行/bin/bash,运行完了也就完了,不会一直挂着等待响应的,所以确实没办法用daemon方式来跑/bin/bash)。这个地方官方早期和现在的文档也确实有些前后不一致,现在是detach,早期的文档说指定-d以daemon方式来运行容器,可能存在一定的误解。另外,如果你需要跑容器里的bash,直接运行docker run -i -t CONTAINER_NAME /bin/bash 就可以了,如果觉得参数比docker attach多,可以设置一个别名(alias)来解决:alias dockerbash='docker run -i -t CONTAINER_ID /bin/bash'设置好别名后,直接运行dockerbash就可以进入容器的bash了