Centos 7 下自啟動服務配置


在服務器部署服務后,往往需要將服務設置成開機自啟的狀態 ,以防設備出現宕機或斷電重啟,服務無法訪問的情況。

對於常見的服務(httpd,mysqld,nginx)來說,可通過系統 systemctl enable 來完成該工作。但對於自己開發的 service,比如通過 docker,可不可以通過 systemctl enable 來運行呢,下面就是實現方案:

Step1 - 創建啟動文件

vim auto_start_script.sh

#!/bin/bash
/usr/bin/docker-compose -f /home/user/docker-compose/docker-compose.yml  up -d

Step2 - 配置權限

# get file info
ls -lrt auto_start_script.sh

# add executable permissions
chmod 744 auto_start_script.sh

Step3 - 自定義系統服務

# Add the service startup file
vim /etc/systemd/system/ctg_docker.service

[Unit]
Description=running docker-compose at the system boot
After=docker.service

[Service]
ExecStart=/home/user/docker-compose/config/auto_start_script.sh

[Install]
# 多用戶登錄或者帶有 desktop 登錄
WantedBy=default.target

# change permission
chmod 644 /etc/systemd/system/ctg_docker.service

Step4 - 測試服務

# 加載服務
systemctl daemon-reload

# 啟動服務,查看是否正常
systemctl start ctg_docker.service

# 添加開機啟動
systemctl enable ctg_docker.service

# 重啟系統
reboot

# 獲取系統啟動時間
cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系統已運行:%d天%d時%d分%d秒",run_days,run_hour,run_minute,run_second)}'

date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM