Centos7配置服务开机启动

42 篇文章 11 订阅

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 服务为例。

第一种

在这里插入图片描述

  • 我们可以这么配置
    在这里插入图片描述
  • 首先给文件赋权
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" ]]; then
    echo '#####'
    echo "please input your operate [run|stop|status|log|shell]"
    echo '#####'
fi

# 启动服务
if [[ $operate = "run" || $operate = "start" ]]; then
    rm -rf $dir_log
    nohup $dir_home/bin/redis-server $dir_home/redis.conf >> $dir_log 2>&1 &

# 停止服务
elif [[ $operate = "stop" ]]; then
    kill -9 $pid_1

# 查看服务运行状态
elif [[ $operate = "status" ]]; then
    if [[ $pid_1 ]]; then
        # 黄底蓝字
        echo -e "\033[43;34m RUNNING \033[0m"
    else
        # 蓝底黑字
        echo -e "\033[44;30m STOPPED \033[0m"
    fi

# 查看服务运行日志
elif [[ $operate = "log" ]]; then
    if [[ -e $dir_log ]]; then
        tail -f $dir_log
    else
        echo '#####'
        echo "No logs have been generated so far"
        echo '#####'
    fi

# 进入服务命令行界面
elif [[ $operate = "shell" ]]; then
    if [[ $pid_1 ]]; then
        $dir_home/bin/redis-cli -h localhost -p 6377 -a cloudansys[redis]
    else
        echo '#####'
        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
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WaiSaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值