Systemd 脚本未写入 .txt 文件

Systemd 脚本未写入 .txt 文件

我正在尝试制作一个 systemd 单元,运行一个脚本,不断检查两个 txt 文件之间的差异,并将差异写入第三个文件:

[Unit]
Description=something

[Service]
Type=simple
Restart=always
ExecStart=/home/myuser/test.sh

[Install]
WantedBy=graphical.target

测试.sh:

#!/bin/bash

log=/home/myuser/test.txt

log2=/home/myuser/test2.txt

while true
do
     lshw -short > $log

     if ! diff "${log}" "${log2}"; then
     date >> alert.txt
     diff "${log}" "${log2}" >> alert.txt
     fi
done

该脚本运行良好并且服务日志告诉我服务正在运行,但是它从未写入“alert.txt”文件。

有什么解决办法吗?

答案1

通过 SystemD 脚本执行脚本时,您需要使用脚本的完全限定路径。这样,它就知道将文件数据存储在磁盘上的哪个位置。

因此,不要alert.txt给它一个完整的路径,例如/home/user/alert.txt/tmp/alert.txt或类似的。

相关内容