Debian - 如何防止断电时文件损坏?

Debian - 如何防止断电时文件损坏?

我有一个基于 Debian 的操作系统,我正在创建一个支持自我升级的程序。该程序在系统级作为 systemd 服务运行。

我在更新软件时遇到问题,这实际上意味着替换文件/opt/myApp/夹(我所有应用程序代码的主页)上的某些文件并替换 systemd 服务单元文件/etc/systemd/system/my_service.service。在此之后,我运行systemctl daemon-reloadsystemctl enable my_service并且systemctl restart按预期工作。但是,如果在此之后突然断电,复制到的新文件/opt/myApp/和新服务文件在文件系统中的大小将变为 0,这当然会导致我的程序失败并且服务进入屏蔽状态。如果我在安装后重新启动系统,“危险”就会消失,系统可以处理突然断电而不会影响我关心的文件。

这是某种文件系统损坏问题吗?如何在不重启系统的情况下防止此问题发生?此问题的根源是什么?

答案1

考虑.deb 打包你的软件。这样,软件包将处理此问题以及整个更新过程,包括应用程序文件和 SystemD 服务单元。如果出现问题,例如突然断电或其他中断,dpkg 将意识到这种情况并建议必要的操作,这可能是重新安装软件包或dpkg --configure -a

相关内容