在launchd中使用“RootDirectory”?

时间:2012-09-26 22:36:51

标签: macos launchd

我正在编写一个可能具有破坏性的脚本来临时存档,然后最终删除运行Mac OS X Server 10.7的客户端FTP系统上不再需要的文件。

要扩展,我正在切换一组FTP主目录,对超过30天的任何文件执行查找,然后将这些文件移动到“已存档”目录中,如果它们再保留30天,将被删除。

我打算将此脚本设置为使用launchd自动每30天运行一次,因为它是Mac OS X的首选方法。

它还具有(或声称具有)chroot作业的能力,当它用称为“RootDirectory”的plist中的键启动时,但是我无法开始工作。

Apple自己关于这个主题的文档似乎非常精简,我一直无法找到实际使用RootDirectory密钥的launchd plist的单个示例。

有没有人有例子?

1 个答案:

答案 0 :(得分:0)

在守护程序的配置属性列表中包含RootDirectory密钥,其中Directory为字符串。使用StartCalendarInterval 30天

   <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.apple.dts.SampleD</string>
        <key>RootDirectory</key>
        <string>path</string>
        <key>ProgramArguments</key>
        <array>
            <string>/tmp/SampleD</string>
        </array>
        <key>ServiceIPC</key>
        <true/>
        <key>Sockets</key>
        <dict>
            <key>MyListenerSocket</key>
            <dict>
                <key>SockServiceName</key>
                <string>12345</string>
            </dict>
        </dict>
    </dict>
    </plist>