1.起因

昨天突然断了一秒钟电,导致公司内部两台机器的EMQX服务停了,还要登上去重新启动太麻烦了,所以这里配置一个开机自启的脚本。

2.如何配置

方法就是我们需要配置一个脚本先,我这里贴一个我的,大家根据需要改动自己的路径

首先编写一个脚本: vi /etc/init.d/emqx

  1. #!/bin/sh
  2. #
  3. # emqttd
  4. #
  5. # Startup script for emqx
  6. #
  7. # chkconfig: 2345 90 10
  8. # description: emqx is mqtt broker.
  9. #
  10. # source function library
  11. . /etc/rc.d/init.d/functions
  12. export HOME=/root
  13. start() {
  14. echo "starting emqx..."
  15. # 此处根据实际安装目录修改下面的路径
  16. cd /www/server/emqx/emqx1 && ./bin/emqx start
  17. }
  18. stop() {
  19. echo "stopping emqx..."
  20. # 此处根据实际安装目录修改下面的路径
  21. cd /www/server/emqx/emqx1 && ./bin/emqx stop
  22. }
  23. restart() {
  24. stop
  25. start
  26. }
  27. case "$1" in
  28. start)
  29. start
  30. ;;
  31. stop)
  32. stop
  33. ;;
  34. restart)
  35. restart
  36. ;;
  37. *)
  38. echo $"Usage: $0 {start|stop}"
  39. RETVAL=2
  40. esac

然后我们把这个脚本注册为服务

  1. chmod +x /etc/init.d/emqx
  2. chkconfig --add emqx

然后我们用chkconfig —list查看是否有刚才编写的内容:
1.png
现在就已经可以做到开机自启了,我们用shutdown -r now重启,然后查看状态
2.png
以后我们也不必进入安装目录启动了,可以直接使用以下三条

  1. #启动服务
  2. systemctl start emqx
  3. #停止服务
  4. systemctl stop emqx
  5. #重启服务
  6. systemctl restart emqx
  7. #查看状态
  8. systemctl status emqx

注:
Centos7以下版本不支持systemctl命令,但该脚本不会影响开机自启