回答

34

可以使用test:修飾符有條件地運行命令。您指定要完成的測試。如果測試返回0,則運行該命令,否則不是。

如果您的配置文件中的最後一條命令觸及一個文件,並且您只想運行一次的命令檢查該文件的存在,那麼這些命令將僅在第一次運行。

commands: 
    01-do-always: 
    command: run_my_script 
    02-do-on-boot: 
    command: script_to_run_once 
    test: test ! -f .semaphore 
    99-signal-startup-complete: 
    command: touch .semaphore 

在Windows上它會是這樣的

commands: 
    01-do-always: 
    command: run_my_script 
    02-do-on-boot: 
    command: script_to_run_once 
    test: if exists c:\\path\\to\\semaphore.txt (exit 0) else (exit 1) 
    99-signal-startup-complete: 
    command: date > c:\\path\\to\\semaphore.txt 
+0

很好的解決方案,謝謝@Jim! –

+0

你會如何做同樣的事情,但在Windows服務器上?語法如何不同?謝謝。 – SSED

+0

用Windows示例更新了帖子。 –

相關問題