在意识到OS没有提供简单的解决方案来调度任务后,我仍然有些动摇。也许这就是为什么我找不到我的发射弹问题背后的原因。我以为这会是个简单的任务,在阅读了一段时间后,我带着:
Frost:~ ren$ cat /Library/LaunchDaemons/org.mvps.hosts.plist
<?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>org.mvps.hosts</string>
<key>ProgramArguments</key>
<array>
<string>bash</string>
<string>-c</string>
<string>curl -s http://winhelp2002.mvps.org/hosts.txt | grep \"^0\.0\.0\.0\|^127\.0\.0\.1\|^::1\" > /etc/hosts</string>
</array>
<key>StartInterval</key>
<integer>86400</integer>
</dict>
</plist>但是对于世界上的每一件事,我都不明白为什么在加载和启动/etc/host之后不更新。命令本身工作,所以问题可能是格式化或转义..?除了launchctl列表状态127之外,我没有找到任何其他的方法来获得工作的任何线索,不管它指向什么。任何想法都将不胜感激。
发布于 2014-11-09 15:25:54
这就是我最后的结局:
Frost:~ ren$ cat /Library/LaunchDaemons/org.mvps.hosts.plist
<?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>org.mvps.hosts</string>
<key>ProgramArguments</key>
<array>
<string>bash</string>
<string>-c</string>
<string>bash -c "curl -s http://winhelp2002.mvps.org/hosts.txt | grep \"^0\.0\.0\.0\|^127\.0\.0\.1\|^::1\" > /etc/hosts"</string>
</array>
<key>StartInterval</key>
<integer>86400</integer>
</dict>
</plist>坦率地说,我不知道为什么我要调用bash来运行命令,因为它的内部工作方式在launchd上,但我还是不喜欢它。现在起作用了。
发布于 2014-11-07 02:20:59
您是否尝试过bash和/或curl和/或grep的绝对路径?例如/bin/bash /usr/bin/curl,还是它们停留在fs上的任何地方?
https://stackoverflow.com/questions/26792918
复制相似问题