设为首页 加入收藏

TOP

分析MySQL 5.6的Dockerfile(三)
2015-11-10 12:16:44 来源: 作者: 【 】 浏览:23
Tags:分析 MySQL 5.6 Dockerfile
it process failed.'
? ? ? ? ? ? exit 1
? ? ? ? fi


关闭已启动的mysql server,可能很多人会感到好奇,不是提供mysql服务么?为什么还要关闭呢?


答案就在于dockerfile中CMD的命令为 ["mysqld"],如果不关闭的话,这里就无法启动。



这里比较有意思的还是在于脚本部分,


一、关于kill,kill命令是通过向进程发送指定的信号来结束进程的。


-s的意思是Specify the signal to send.? The signal may be given as a signal name or number.指定需要发送的信号.


如果没有指定发送信号,那么默认值为TERM信号。


关于-TERM和-9的区别


kill -TERM PID:TERM是请求彻底终止某项执行操作.它期望接收进程清除自给的状态并退出,它是一种较温和的方式。


kill -9 PID:


这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。
如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表


二、关于||运算符


关于&&和||的区别


command1 && command2 :左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行。


command1 || command2:左边的命令(命令1)执行失败了,就执行右边的命令(命令2)。


三、关于wait


wait命令用来等待指令的完成,直到其执行完毕后返回终端。


所以这段脚本的逻辑是首先用kill -s TERM "$pid"的方式关闭mysqld进程,如果执行成功了,则! kill -s TERM "$pid"的结果为false,这时候就执行wait "$pid",wait是等待mysqld的关闭,mysqld关闭完毕后,wait "$pid"结果为真,此时! wait "$pid"结果为假。echo语句就不执行。


至此,分析完毕~


首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MySQL中VARCHAR和CHAR格式数据的.. 下一篇Oracle归档日志删除

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: