按照本手册中的说明设置 SeaTable 时,SeaTable 的 Docker 容器不会在系统重启后自动启动。将 SeaTable 添加到自动启动可最大限度地减少系统停机时间并防止服务中断。
这里使用的自动启动程序是 systemd。systemd 是许多 Linux 发行版(包括 CentOS、Debian 和 Ubuntu)中默认的初始化程序,它为其控制的服务提供了方便的自动启动功能。
自动启动 SeaTable 基于以下三个组件
在主机目录/opt/seatable
中创建脚本文件并在文本编辑器中打开它:
cd /opt/seatable
vim seatable-autostart.sh
将以下代码块粘贴到文件中:
#!/bin/bash
case $1 in
start)
cd /opt/seatable/
docker-compose up -d
sleep 10
docker exec -d seatable /shared/seatable/scripts/seatable.sh start
;;
stop)
cd /opt/seatable/
docker-compose down
;;
restart)
cd /opt/seatable/
docker-compose down
docker-compose up -d
sleep 10
docker exec -d seatable /shared/seatable/scripts/seatable.sh start
;;
esac
注意:如果 SeaTable 的 docker-compose.yml 不在默认目录/opt/seatable
中,请更改代码中的路径。
为脚本添加可执行权限:
chmod u+x seatable-autostart.sh
在主机目录/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 命令:
sudo systemctl stop seatable
sudo systemctl start seatable
sudo systemctl restart seatable
注意:使用 systemctl 启动 SeaTable 时,必须先停止 SeaTable 的 Docker 容器。
使用以下命令启用自动启动:
sudo systemctl enable seatable
同样,使用以下命令禁用自动启动:
sudo systemctl disable seatable
您可以使用以下命令检查 SeaTable 的自动启动状态:
sudo systemctl is-enabled seatable
Last modified by seatable, 2022-06-27