我想用/usr/lib/tmpfiles.d/
覆盖/etc/tmpfiles.d/tmp.conf
的默认tmp.conf,并在每天午夜运行cron作业。该服务需要以systemd-tmpfiles --clean
运行。我怎么能在午夜开始服务,有人帮帮我吗?
示例代码:
tmp.conf:
file.managed:
- name: /etc/tmpfiles.d/tmp.conf
- source: salt://tmp/files/tmp.conf
- user: root
- mode: 644
- require:
- user: root
run_systemd-tmpfiles:
cron.present:
- user: root
- minute: 0
- hour: 0
- require:
- file: tmp.conf
enable_tmp_service:
service.running:
- name: systemd-tmpfiles --clean
- enable: True
- require:
- cron: run_systemd-tmpfiles
答案 0 :(得分:4)
如果您只是希望命令作为cron的一部分运行,则需要设置cron.present
来运行命令。
cron_systemd-tmpfiles:
cron.present:
- name: systemd-tmpfiles --clean
- user: root
- minute: 0
- hour: 0
- require:
- file: tmp.conf
如果你想在这种状态下运行它,你不能使用tmpfile.service,你只需要通过cmd.run
运行命令,或者你只想在file.managed时运行它更改,您将使用cmd.wait
run tmpfiles:
cmd.wait:
- name: systemd-tmpfiles --clean
- listen:
- file: tmp.conf
但是如果您使用的是systemd,则systemd-tmpfiles.service已经在启动时运行,因此没有理由再次启用它。当它在启动过程开始时运行时,它将以与tmpfile --clean运行相同的方式运行。