我有一个使用绑定安装将/ var / log移到另一个目录并使用zram驱动器的应用程序。 我将在启动前使用Before = systemd-journal-flush.service来启动服务,以便在日记记录开始永久存储之前将zram驱动器安装到位。
[Unit]
Description=zram-config
DefaultDependencies=no
Before=systemd-journal-flush.service
After=local-fs.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/zram-config start
ExecStop=/usr/local/bin/zram-config stop
TimeoutSec=120
RemainAfterExit=yes
[Install]
WantedBy=sysinit.target
我是使用systemd的自白菜鸟,但是我正在阅读的内容是,关机只是启动的相反顺序。 因此,尽早开始就意味着可能会延迟关闭,因为我一直在尝试各种选择,但这似乎是个陷阱22。
我很愚蠢,创建两个用于启动和关闭的oneshot服务是完全可行的,这样初始Sync2Zram和关闭最终的WriteFromZram具有2个单独的服务,其中ExecStart = / usr / local / bin / zram-config start和ExecStop = / usr / local / bin / zram-config stop是2服务中的oneliner吗? 如果我在systemd-journal-flush.service之前获得了较早的启动,则关闭/关闭关闭时所需的服务,并且在关闭完成之前未完成最终停止服务。将订单更改为更高的顺序会给我带来一些问题,其中日志似乎切换到/ run / log,因为/ var / log可能不可用。
完整的脚本(服务)在https://github.com/StuartIanNaylor/zram-config处有帮助。 很多东西都是从https://github.com/azlux/log2ram继承而来的,我只是想在没有太多知识的情况下就为启动和关闭提供2个单独的oneshot服务,因为所做的全部就是对zram服务的初始和关闭控制?