Skip to main content

Thingsboard 部署

Ubuntu下部署

一、上传编译后的文件至Ubuntu服务器

Example banner
  • 在服务器中创建文件为/online文件夹,并把文件application/target中文件:confdatathingsboard-3.9.0-SNAPSHOT-boot.jar 上传至online目录中
  • 安装JavaPostgresql并执行以下代码进行安装:
java -cp thingsboard-3.9.0-SNAPSHOT-boot.jar $JAVA_OPTS -Dplatform=@pkg.platform@ -Dloader.main=org.thingsboard.server.ThingsboardInstallApplication -Dinstall.data_dir=./data  -Dinstall.load_demo=true  -Dspring.jpa.hibernate.ddl-auto=none  -Dinstall.upgrade=false  -Dlogging.config=./config/logback.xml org.springframework.boot.loader.launch.PropertiesLauncher

二、创建自定义服务

1. 创建服务单元文件

/etc/systemd/system/目录下创建一个新的.service文件。这个文件定义了服务的各种属性和行为。可以使用如下命令:

vim /etc/systemd/system/thingsboard.service

2. 编辑服务单元文件

在打开的编辑器中,定义服务的描述、依赖、启动命令等:

[Unit]
Description=Thingboard Service
After=network.target

[Service]
Type=simple
ExecStart=java -cp thingsboard-3.9.0-SNAPSHOT-boot.jar $JAVA_OPTS -Dplatform=@pkg.platform@ -Dloader.main=org.thingsboard.server.ThingsboardServerApplication -Dinstall.data_dir=./data -Dspring.jpa.hibernate.ddl-auto=none -Dlogging.config=./config/logback.xml org.springframework.boot.loader.launch.PropertiesLauncher
User=root
WorkingDirectory=/online
Restart=on-failure

[Install]
WantedBy=multi-user.target

字段解释:

  • Description:服务的简短描述。
  • After:定义服务启动顺序的依赖,这里表示在网络服务启动后启动本服务。
  • Type:服务的类型,simple是最常见的类型,表示启动后立即运行。
  • ExecStart:启动服务时要执行的命令,这里替换为您的脚本路径。
  • User:运行该服务的用户账户。
  • WorkingDirectory:服务的工作目录。
  • Restart:定义服务失败时的重启行为,on-failure表示服务失败时自动重启。
  • WantedBy:定义服务安装后的启动级别,multi-user.target是常用的级别之一。

3. 重新加载systemd

在修改了.service文件后,需要通知systemd重新加载配置,以识别新的或修改过的服务单元文件:

sudo systemctl daemon-reload

4. 启动并测试自定义服务

使用systemctl命令启动您的服务,并检查其状态:

sudo systemctl start thingsboard
sudo systemctl status thingsboard

5. 设置服务开机自启

如果您希望服务在系统启动时自动启动,可以使用enable命令:

sudo systemctl enable thingsboard

这将创建一个符号链接,将您的服务单元文件链接到/etc/systemd/system/目录下的某个目标目录(通常是multi-user.target.wants/),从而在启动时自动加载和启动服务。

6. 查看服务日志

  • 如果需要查看服务的日志输出,可以使用journalctl命令:
sudo journalctl -u thingsboard
  • 这将列出服务的所有日志信息,包括echo的输出内容。如果需要实时查看日志输出,可以添加-f选项:
sudo journalctl -u thingsboard -f
Example banner