以前我认为配置开机自启动是一件比较高深的操作,需要配置很多东西,由于今天机房突然断电,导致机器全部关机,重新起来后发现没有配置开机自启动的程序都需要去手动启动,这样费时费力,所以我和同事将所有程序都配置了开机自启动,特此记录便于日后查阅。
配置开机自启动有两种方式,一种是 chkconfig + /etc/init.d/ 的方式配置,另一种通过 /etc/rc.d/rc.local 的方式配置,前者启动方式可以参照下面这篇文章:
然后我们需要了解 /etc/init.d/ 与 /etc/rc.d/rc.local 的区别,这里给大家奉上参考资料,传送门:
Linux系统中/etc/init.d和/etc/rc.d/rc.local的区别
需要格外注意的是 /etc/rc.local 和 /etc/rc.d/rc.local 的文件之间是存在软连接的关系,所以修改前者的文件内容能达到相同的目的,但是你要格外注意 /etc/rc.d/rc.local 是否有执行权限,如果没有请使用 chown +x /etc/rc.d/rc.local 去配置一下,所以我也可以通过将启动命令或者执行脚本写入 /etc/rc.d/rc.local 的方式达到开机自启动的目的,下面附上Elasticsearch的开机启动脚本
#!/bin/sh
#chkconfig: 2345 80 05
#description: elasticsearch
#author: taft
case "$1" in
start)
su elk<<!
cd /usr/local/elk/elasticsearch-6.7.2/
./bin/elasticsearch -d
!
echo "elasticsearch startup"
;;
stop)
es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
kill -9 $es_pid
echo "elasticsearch stopped"
;;
restart)
es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
kill -9 $es_pid
echo "elasticsearch stopped"
su elk<<!
cd /usr/local/elk/elasticsearch-6.7.2/
./bin/elasticsearch -d
!
echo "elasticsearch startup"
;;
*)
echo "start|stop|restart"
;;
esac
exit $?
通过 su elk<<! ... ! 的方式来切换elk用户,然后再通过elk用户执行启动脚本。
本着文章完整性的原则再补充一个知识点,本文只是介绍了如何配置程序开机自启动,但不包括容器开机自启动,相关文章我已经写好了,在此奉上传送门:
到此centos7配置开机自启动介绍完毕。