使用cron启动系统服务 - SaltStack

时间:2017-05-17 16:31:43

标签: salt-stack

我想用/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

1 个答案:

答案 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运行相同的方式运行。