QUIC实战(四) 设置应用开机自启动
之前因為工作需要在aws搭建了支持HTTP3的 nginx + upsync + consul 的應用集群,想了解的可以看下之前的三篇博客:
QUIC實戰(一) 通過Quiche部署支持HTTP3 的NGINX
QUIC實戰(二) AWS 搭建nginx(http3.0) + upsync + consul(server-client模式) 集群
QUIC實戰(三) letsencrypt證書申請和自動續期
相關的putty和winscp操作可以參考:
通過putty和 winscp操作aws機器筆記
為了節省aws費用,在不使用的時候我會把對應的實例停止,但是這樣每次調試啟動的時候就需要將每個實例上的應用重新啟動,需要登錄9臺機器并且操作啟動命令,這是非常麻煩的。
所以想著將對應的應用設置成開機自啟動,這樣我只需要重啟實例后去consul的web界面確認下是否所有機器都正常運行就好了。
我需要啟動的應用有nginx,consul server, consul client, tomcat,他們的啟動命令都非常明顯,關于consul server 和consul client我之前還單獨寫了個shell腳本,這樣就可以直接運行腳本來啟動對應的consul 應用了。所以我只需要設置在開機的同時執行對應應用的啟動命令或者腳本就可以了
以consul client和tomcat為例,我將兩個應用都部署在了一個實例上
寫一個shell腳本:
#!/bin/sh #chkconfig: 2345 80 90 #description:tomcat_consul_start.sh sudo -i /opt/apache-tomcat-8.5.58/bin/startup.sh /opt/consul_client.sh關于chkconfig命令的意思會在后面介紹一下,其余命令很簡單,就是切換到root用戶,然后分別啟動tomcat和執行consul client的啟動腳本,這個腳本是我自己寫的,可以看下QUIC實戰(二) AWS 搭建nginx(http3.0) + upsync + consul(server-client模式) 集群 這篇博客。
添加該腳本的執行權限,然后放到/etc/init.d/下,并加入到開機啟動中就可以了
chmod +x tomcat_consul_start.sh cp tomcat_consul_start.sh /etc/init.d/ chkconfig --add tomcat_consul_start.sh可以看到已經成功加入到開機自啟動項里了
這樣在重啟實例之后,tomcat和consul client就會自動啟動,完事。
對于consul server和nginx都按照上述步驟執行,按理這樣我重啟整個集群后所有的應用都會啟動,nginx + upsync + consul集群就處于可用狀態了。
但是我在實際操作中,三個consul server的實例最后只有一個成功自啟動了,其余兩個都沒有自啟動成功,暫時還沒找到對應的原因,我就先手動啟動了一下。等找到原因后會補充下的
關于chkconfig命令
chkconfig有幾個等級:
0:表示關機
1:表示單用戶模式
2:表示無網絡鏈接多用戶命令行模式
3:表示有網絡鏈接多用戶命令行模式
4:表示不可用情況
5:表示帶圖形界面的多用戶模式
6:表示重新啟動
所以chkconfig:2345就代表在2345的等級下啟動這個服務
后面的80 90分別是啟動優先級和關閉優先級
程序的優先級,就是程序被CPU執行的先后順序,該值越小則說明優先級別越高。這里的啟動優先級和關閉優先級就是啟動這個腳本的進程的優先級,和關閉這個腳本的進程的優先級。
總結
以上是生活随笔為你收集整理的QUIC实战(四) 设置应用开机自启动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单元测试之DBUnit的使用以及原理剖析
- 下一篇: 冷静对待你遇到的所有Java内存异常