Centos7配置服务开机启动

Background

  • 这里记录方便自己以后查阅。
  • 配置开机启动的方法有三种:1、配置/etc/rc.local/etc/rc.d/rc.local;2、配置/etc/rc.d/init.d;3、配置/usr/lib/systemd/system,添加自定义系统服务。
  • 这里给出第一种,以jar包服务为例;第三种方法,以mysql、redis、emqx、rabbitmq 服务为例。

第一种

  • 这种适合Java程序开机启动配置,结合我开发的jar包操作脚本operate.sh非常方便。
  • 脚本在这里奉上:【jar包服务操作】【配置 web 界面监控服务运行】【shell脚本】

在这里插入图片描述

  • 我们可以这么配置
    在这里插入图片描述
  • 首先给文件赋权
chmod +x /etc/rc.local

在这里插入图片描述

  • 然后添加一个需要开机启动的服务脚本 boot-auto-run.sh,你可以把它放在你自定义的位置,内容格式如下:
# 170-tower-lift-server
cd /root/projects/170-tower-lift/170-tower-lift-server/
sh operate.sh run

在这里插入图片描述

  • 最后配置开机运行这个脚本 boot-auto-run.sh就行了,如果以后有其他服务,也同样放到这个脚本里就行了
tee -a /etc/rc.local <<-'EOF'# auto run on boot
/usr/wlf/boot-auto-run.sh
EOF

在这里插入图片描述

  • reboot 测试下,正常情况应该已经生效了哈。

第二种

在这里插入图片描述

第三种

配置文件语法

[Unit]:服务的说明
Description:描述服务
After:描述服务类别[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径[Install]服务安装的相关设置,可设置为多用户

1、 mysql

  • 添加配置文件
vim /usr/lib/systemd/system/mysql.service
  • 配置文件内容如下
[Unit]
Description=mysql
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStart=/opt/mysql-5.7.25/support-files/mysql.server start[Install]
WantedBy=multi-user.target
  • 设置开机自启动
systemctl enable mysql.service 

2、 redis

  • 添加配置文件
vim /usr/lib/systemd/system/redis.service
  • 配置文件内容如下
[Unit]
Description=redis
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStart=/usr/redis/bin/redis-operator.sh start
ExecStop=/usr/redis/bin/redis-operator.sh stop[Install]
WantedBy=multi-user.target
  • 设置开机自启动
systemctl enable redis.service 
  • redis-operator.sh,这个脚本是自己写的
# 服务基本信息
operate=$1
ps_1='./redis-server'
pid_1=`ps -ef | egrep "$ps_1" | egrep -v grep | awk '{print $2}'`
dir_home=/usr/redis/
dir_log=/usr/redis/redis-server.log# 判断输入参数
if [[ -z $operate || $operate = "help" ]]; thenecho '#####'echo "please input your operate [run|stop|status|log|shell]"echo '#####'
fi# 启动服务
if [[ $operate = "run" || $operate = "start" ]]; thenrm -rf $dir_lognohup $dir_home/bin/redis-server $dir_home/redis.conf >> $dir_log 2>&1 &# 停止服务
elif [[ $operate = "stop" ]]; thenkill -9 $pid_1# 查看服务运行状态
elif [[ $operate = "status" ]]; thenif [[ $pid_1 ]]; then# 黄底蓝字echo -e "\033[43;34m RUNNING \033[0m"else# 蓝底黑字echo -e "\033[44;30m STOPPED \033[0m"fi# 查看服务运行日志
elif [[ $operate = "log" ]]; thenif [[ -e $dir_log ]]; thentail -f $dir_logelseecho '#####'echo "No logs have been generated so far"echo '#####'fi# 进入服务命令行界面
elif [[ $operate = "shell" ]]; thenif [[ $pid_1 ]]; then$dir_home/bin/redis-cli -h localhost -p 6377 -a cloudansys[redis]elseecho '#####'echo "The redis service has not been started yet"echo '#####'fi
fi

3、 emqx

  • 添加配置文件
vim /usr/lib/systemd/system/emqx.service
  • 配置文件内容如下
[Unit]
Description=emqx
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
Environment=HOME=/var/lib/emqx
ExecStart=/usr/bin/emqx start[Install]
WantedBy=multi-user.target
  • 设置开机自启动
systemctl enable emqx.service 

4、 rabbitmq

  • 添加配置文件
vim /usr/lib/systemd/system/rabbitmq.service
  • 配置文件内容如下
[Unit]
Description=rabbitmq
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStart=/usr/local/rabbitmq/sbin/rabbitmq-server -detached
ExecStop=/usr/local/rabbitmq/sbin/rabbitmqctl stop[Install]
WantedBy=multi-user.target
  • 修改启动脚本,在rabbitmq-server脚本中在NOTIFY_SOCKET = \这一行下面加入如下内容
# vim /usr/local/rabbitmq/sbin/rabbitmq-server
ERLANG_HOME=/usr/local/erlang
export PATH=$PATH:$ERLANG_HOME/bin
export HOME=/usr/local/rabbitmq/
  • 设置开机自启动
systemctl enable rabbitmq.service 

5、OpenTSDB

  • 添加配置文件
vim /usr/lib/systemd/system/opentsdb.service
  • 配置文件内容如下
[Unit]
Description=OpenTSDB Service
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStart=/usr/share/opentsdb/etc/init.d/opentsdb start
ExecStop=/usr/share/opentsdb/etc/init.d/opentsdb stop
Restart=on-abort[Install]
WantedBy=multi-user.target
  • 设置开机自启动
systemctl enable opentsdb.service 

6、查看所有已启动的服务

systemctl list-units --type=service


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部