6

给 Java 应用和 React 应用部署 systemd 开机自启

 2 years ago
source link: https://hellodk.cn/post/897
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

给 Java 应用和 React 应用部署 systemd 开机自启

思路就是编写启动和停止的 shell 脚本,然后编写 systemd 配置文件。

我以我之前写的微博热搜实时推送前后端程序为🌰️。欢迎关注我的 微博热搜实时推送 tg 推送频道。 url is https://t.me/weibo_hot_search GitHub: https://github.com/hellodk34/weibo_hot_search

该 Java 应用是这样运行的

java -jar xxx.jar > /dev/null 2>&1 &

该 react应用是这样运行的

serve -s build > /dev/null 2>&1 &

Java 应用

编写 start-wb-hotsearch.sh 文件

注意 jar 文件的绝对路径

#!/bin/bash
/usr/local/java/jdk1.8/bin/java -jar /xxx/wb_hotsearch/wb-hotsearch-2021-12-22.jar > /dev/null 2>&1 &
echo $! > /var/run/wbhotsearch.pid

编写 stop-wb-hotsearch.sh 文件

#/bin/bash
PID=$(cat /var/run/wbhotsearch.pid)
kill -9 $PID
rm -rf /var/run/wbhotsearch.pid

编写 systemd service 文件

/usr/lib/systemd/system/ 下创建 wbhotsearch.service 文件,内容如下。注意两个shell文件的绝对路径要写对,下面给出的是假的路径

[Unit]
Description=Weibo hot search back end
After=network.target
[Service]
Type=forking
ExecStart=/xxx/wb_hotsearch/start-wb-hotsearch.sh
ExecStop=/xxx/wb_hotsearch/stop-wb-hotsearch.sh
[Install]
WantedBy=multi-user.target

配置 systemd

systemctl daemon-reload

再 enable 然后 start 即可。下面的 status 和 is-enabled 可以帮助查看服务状态

systemctl enable wbhotsearch
systemctl start wbhotsearch
systemctl status wbhotsearch
systemctl is-enabled wbhotsearch

React 应用

殊途同归,React 应用也是如此,下面简要写一下

编写 start-wbhotsearch-front.sh 文件

#!/bin/bash
/usr/bin/serve -s /xxx/wb_hotsearch/wb-hotsearch-front-end/build > /dev/null 2>&1 &
echo $! > /var/run/wbhotsearchfront.pid

编写 stop-wbhotsearch-front.sh 文件

#/bin/bash
PID=$(cat /var/run/wbhotsearchfront.pid)
kill -9 $PID
rm -rf /var/run/wbhotsearchfront.pid

编写 systemd service 文件

/usr/lib/systemd/system/ 下创建 wbhotsearch-front.service 文件,内容如下。注意两个shell文件的绝对路径要写对,下面给出的是假的路径

[Unit]
Description=Weibo hot search front end service
After=network.target
[Service]
Type=forking
ExecStart=/xxx/wb_hotsearch/wb-hotsearch-front-end/start-wbhotsearch-front.sh
ExecStop=/xxx/wb_hotsearch/wb-hotsearch-front-end/stop-wbhotsearch-front.sh
[Install]
WantedBy=multi-user.target

配置 systemd

systemctl daemon-reload

再 enable 然后 start 即可。下面的 status 和 is-enabled 可以帮助查看服务状态

systemctl enable wbhotsearch-front
systemctl start wbhotsearch-front
systemctl status wbhotsearch-front
systemctl is-enabled wbhotsearch-front

ok了,这下重启机器,我的这些服务将能够自动启动。

之所以没有用 docker,是因为太占空间了,我的 vps 存储空间告急,昨天已经另外申请了 10GB ssd 了,付款了12美元。

done~~~

标签: Linux, Java, react, shell

本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK