Run In Background for Linuxヾ(•ω•`)o
要实现系统启动后自动挂载外置机械硬盘,并运行指定的 sherpa-onnx-online-websocket-server
命令,可以通过以下步骤实现:
1. 自动挂载硬盘(如有)ヾ(•ω•`)o
首先,确保硬盘在系统启动时自动挂载。可以通过 /etc/fstab
文件或 systemd 的 .mount
文件来实现。
方法一:使用 /etc/fstab
自动挂载ヾ(•ω•`)o
- 编辑
/etc/fstab
文件 打开/etc/fstab
文件:
在文件末尾添加以下内容:
UUID
是硬盘的唯一标识符。/mnt/sda1
是挂载点。ext4
是文件系统类型(根据实际情况调整)。defaults
是默认挂载选项。0
表示不备份。2
表示在启动时检查文件系统。- 测试挂载 执行以下命令,测试挂载是否成功:
如果没有报错,说明挂载成功。
方法二:使用 systemd 的 .mount
文件ヾ(•ω•`)o
- 创建
.mount
文件 创建一个文件/etc/systemd/system/mnt-sda1.mount
,内容如下:
[Unit]
Description=Mount external hard drive
Before=local-fs.target
[Mount]
What=/dev/disk/by-uuid/d8afb4b8-396d-45db-be45-9d299e998695
Where=/mnt/sda1
Type=ext4
Options=defaults
[Install]
WantedBy=local-fs.target
2. 创建 systemd 服务文件ヾ(•ω•`)o
接下来,创建一个 systemd 服务文件,确保硬盘挂载后运行 sherpa-onnx-online-websocket-server
命令。
- 创建服务文件
创建一个文件
/etc/systemd/system/sherpa-onnx.service
,内容如下:
[Unit]
Description=Sherpa ONNX Online WebSocket Server
After=network.target mnt-sda1.mount
Requires=mnt-sda1.mount
[Service]
Type=simple
WorkingDirectory=/mnt/sda1/GitProjects/sherpa-onnx
ExecStart=/mnt/sda1/GitProjects/sherpa-onnx/build/bin/sherpa-onnx-online-websocket-server \
--port=6006 \
--num-work-threads=3 \
--num-io-threads=2 \
--tokens=./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/tokens.txt \
--encoder=./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/encoder-epoch-99-avg-1.onnx \
--decoder=./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/decoder-epoch-99-avg-1.onnx \
--joiner=./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/joiner-epoch-99-avg-1.onnx \
--log-file=./log.txt \
--max-batch-size=5 \
--loop-interval-ms=20
Restart=always
[Install]
WantedBy=multi-user.target
3. 检查服务状态ヾ(•ω•`)o
运行以下命令,检查服务是否正常运行:
如果服务正常运行,你会看到类似以下的输出:
● sherpa-onnx.service - Sherpa ONNX Online WebSocket Server
Loaded: loaded (/etc/systemd/system/sherpa-onnx.service; enabled; vendor preset: enabled)
Active: active (running) since ...
4. 查看日志ヾ(•ω•`)o
如果服务启动失败,可以通过以下命令查看日志:
总结ヾ(•ω•`)o
通过上述步骤,你可以确保系统启动后:
- 外置机械硬盘自动挂载到
/mnt/sda1
。 sherpa-onnx-online-websocket-server
在硬盘挂载后自动启动,并在后台运行。