【mysql笔记】mysql启动脚本中的reload实现原理(kill -HUP pid)

kill -HUP pid 
pid 是进程标识。 如果想要更改配置而不需停止并重新启动服务,请使用该命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。

根据约定,当您发送一个挂起信号(信号 1 或 HUP)时,大多数服务器进程(所有常用的进程)都会进行复位操作并重新加载它们的配置文件。


【案例】

在 不重启sshd服务的情况下,动态把sshd监听的端口号由220 改为22.

[root@test01 mysql]# netstat -nltp | grep ssh | grep -v grep
tcp        0      0 0.0.0.0:220                 0.0.0.0:*                   LISTEN      22634/sshd          
tcp        0      0 :::220                      :::*                        LISTEN      22634/sshd          
[root@test01 mysql]# grep 220 /etc/ssh/sshd_config
Port 220
[root@test01 mysql]# sed -i 's/^Port 220/Port 22/g' /etc/ssh/sshd_config
[root@test01 mysql]# egrep '^Port' /etc/ssh/sshd_config                           
Port 22
[root@test01 mysql]# ps -ef|grep sshd|grep -v grep|grep usr|awk '{print $2}'|xargs kill -HUP
[root@test01 mysql]# netstat -nltp | grep ssh | grep -v grep                                                  
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      22653/sshd          
tcp        0      0 :::22                       :::*                        LISTEN      22653/sshd          
[root@test01 mysql]#


【案例】

Mysql服务启动脚本中的reload、force-reload 参数。

[root@test01 mysql]# /etc/init.d/mysql
Usage: mysql  {start|stop|restart|reload|force-reload|status}  [ MySQL (Percona Server) options ]

来自/etc/init.d/mysql:

  'reload'|'force-reload')
    if test -s "$mysqld_pid_file_path" ; then
      read mysqld_pid <  "$mysqld_pid_file_path"
      kill -HUP $mysqld_pid && log_success_msg "Reloading service MySQL (Percona Server)"
      touch "$mysqld_pid_file_path"
    else
      log_failure_msg "MySQL (Percona Server) PID file could not be found!"
      exit 1
    fi
    ;;

你可能感兴趣的:(mysql,ssh)