Ubuntu操作-03 设置开机自启

因业务要求,需要在Ubuntu启动时将docker容器和java进程一起启动,在这里学习配置下。

ubuntu18.04不再使用 inited 管理系统,改用 systemd。但是个人认为开机启动的rc.local更加好用,所以可以自己配置rc.local

1 使用rc.local启动

1.1 实现原理

systemd 默认会读取 /etc/systemd/system 下的配置文件,该目录下的文件会链接 /lib/systemd/system/ 下的文件。一般系统安装完 /lib/systemd/system/ 下会有 rc-local.service 文件,即我们需要的配置文件。

1.2 将 /lib/systemd/system/rc-local.service 链接到 /etc/systemd/system/ 目录下面来

ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service

1.3 修改文件/etc/systemd/system/rc-local.service

如果文件存在本身是没有[Install]项的,需要自己添加进去

#### 文件中本身就有的
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

####  需要自己添加
[Install]
WantedBy=multi-user.target
Alias=rc-local.service

1.4 创建/etc/rc.local脚本文件,并写入要运行的程序

#!/bin/bash
source /etc/profile
docker start redis-v8
sleep 2
docker start zookeeper
sleep 5
docker start kafka
sleep 10
voice.sh
echo "voice start"

voice.sh脚本如下:

#! /bin/bash
source /etc/profile

cd $CONFIG_HOME/..
log_dir=$CONFIG_HOME/logs
log_time=`date +"%Y%m%d%H"`
v_log=${log_dir}/voice_alllog_${log_time}.log
v_error_log=${log_dir}/voice_alllog_${log_time}.error
{
  nohup java -server -Xms2048m -Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CONFIG_HOME/ -Duser.timezone=GMT+08 -Dspring.profiles.active=dev -Dfile.encoding=utf-8 -jar -agentlib:jdwp=tra
nsport=dt_socket,server=y,suspend=n,address=5006 voice.jar &
} 1>>$v_log  2>>$v_error_log

1.5 启动rc-local.service服务

给rc.local执行的权限

sudo chmod +x /etc/rc.local

启用服务

sudo systemctl enable rc-local

启动服务

sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

2 使用/etc/init.d/启动

2.1 在/etc/init.d/下新建脚本xxx 或者 xxx.sh

#! /bin/bash

# command content

exit 0

2.2 设置文件权限

chmod 755 xxx

2.3 将脚本添加到启动脚本

update-rc.d xxx defaults 90

# 移除开机脚本
update-rc.d -f xxx remove

3 重启系统并检查操作

重启后,检查docker容器 docker ps,容器都正常启动

fff0318ef0b8   nginx:latest                   "/docker-entrypoint.…"   2 weeks ago    Up 12 minutes   0.0.0.0:7064->7064/tcp, 80/tcp, 0.0.0.0:7897->7897/tcp                                                    
    nginx-test1d15f405cc24c   avie/wurstmeister/kafka        "start-kafka.sh"         2 weeks ago    Up 3 seconds    0.0.0.0:9092->9092/tcp                                                                                     
   kafkab68be9b6a540   avie/zookeeper                 "/docker-entrypoint.…"   2 weeks ago    Up 12 minutes   2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp                                                      
    zookeeper10310cb0cb26   mysql8:v8                      "docker-entrypoint.s…"   2 weeks ago    Up 12 minutes   33060/tcp, 0.0.0.0:3308->3306/tcp                                                                         
    mysql-v81103e736172e   avie-redis:v8                  "docker-entrypoint.s…"   2 weeks ago    Up 12 minutes   0.0.0.0:6379->6379/tcp                                                                                    
    redis-v8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值