开机启动

4.3 新版本
从 4.3 版本开始,使用新版部署方法,SeaTable 将在 Docker 启动时自动启动。
注:若 SeaTable 容器不存在(执行了 docker compose down),则容器不会自动启动。
4.2 及之前版本
4.2 及之前版本,按照本手册中的说明设置 SeaTable 时,SeaTable 的 Docker 容器不会在系统重启后自动启动。将 SeaTable 添加到自动启动可最大限度地减少系统停机时间并防止服务中断。
依赖
这里使用的自动启动程序是  systemd  。systemd 是许多 Linux 发行版(包括 CentOS、Debian 和 Ubuntu)中默认的初始化程序,它为其控制的服务提供了方便的自动启动功能。
配置启动脚本
自动启动 SeaTable 基于以下三个组件
  • 首先,一个能够使用 docker-compose.yml 启动、停止和重新启动 SeaTable 的脚本。
  • 第二,使用启动脚本的 systemd 单元文件。
  • 第三,systemd 的原生自动启动能力。
准备启动脚本
在主机目录 /opt/seatable 中创建脚本文件并在文本编辑器中打开它:
            
                
                
cd /opt/seatable
vim seatable-autostart.sh
将以下代码块粘贴到文件中:
            
                
                
#!/bin/bash

case $1 in
     start)
     cd /opt/seatable/
     docker compose up -d
     ;;
     stop)
     cd /opt/seatable/
     docker compose down
     ;;
     restart)
     cd /opt/seatable/
     docker compose down
     sleep 10
     docker compose up -d
     ;;
esac
注意:如果 SeaTable 的 docker-compose.yml 不在默认目录 /opt/seatable 中,请更改代码中的路径。
为脚本添加可执行权限:
            
                
                
chmod u+x seatable-autostart.sh
配置systemd单元文件
在主机目录 /etc/systemd/system 中创建一个新的单元文件并在文本编辑器中打开它:
            
                
                
cd /etc/systemd/system
vim seatable.service
将以下代码复制到文件中:
            
                
                
[Unit]
Description=SeaTable
After=network.target

[Service]
ExecStart=/opt/seatable/seatable-autostart.sh start
ExecStop=/opt/seatable/seatable-autostart.sh stop
User=root
Type=forking
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target
注意:如果 seatable-autostart.sh 没有保存在默认的 /opt/seatable 目录中,请更改代码中的路径。
现在,启用和停止 SeaTable 可以使用以下 systemctl 命令:
  • 停止所有 SeaTable 容器: sudo systemctl stop seatable
  • 启动所有 SeaTable 容器: sudo systemctl start seatable
  • 重新启动所有 SeaTable 容器: sudo systemctl restart seatable
注意:使用 systemctl 启动 SeaTable 时,必须先停止 SeaTable 的 Docker 容器。
开启自动启动
使用以下命令启用自动启动:
            
                
                
sudo systemctl enable seatable
同样,使用以下命令禁用自动启动:
            
                
                
sudo systemctl disable seatable
您可以使用以下命令检查 SeaTable 的自动启动状态:
            
                
                
sudo systemctl is-enabled seatable