我有一个 launchd 守护进程,~/Library/LaunchAgents它在小牛队中运行良好。但它不会从优胜美地公开测试版开始。守护进程plist是这样的(我的用户名是darksairUID 501)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.darksair.retrmail</string>
<key>ProgramArguments</key>
<array>
<string>/Users/darksair/bin/retrmail.py</string>
</array>
<key>KeepAlive</key>
<false/>
<key>StartInterval</key>
<integer>300</integer>
<key>LaunchOnlyOnce</key>
<false/>
<key>UserName</key>
<string>darksair</string>
<key>ProcessType</key>
<string>Standard</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/Users/darksair/Python/bin:/Users/darksair/Python3/bin:/Users/darksair/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
<key>StandardOutPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
<key>StandardErrorPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
基本上它应该~/bin/retrmail.py每5分钟运行一次。
我注意到在 Yosemite 中,launchd 升级到 2.0,并且 launchctl 有新的命令。我试过
sudo launchctl kickstart user/501/org.darksair.retrmail
Run Code Online (Sandbox Code Playgroud)
它说
Could not find service "org.darksair.retrmail" in domain for uid: 501
Run Code Online (Sandbox Code Playgroud)
我也试过老派
sudo launchctl load ~/Library/LaunchAgents/retrmail.plist …Run Code Online (Sandbox Code Playgroud) 我在垃圾箱中有一个文件,我无法删除它。在你问我 STFW 之前,不,文件没有被锁定:-/
该文件是一个指向任何内容的符号链接(目标已删除)。这是该ls -lO文件的输出:
lrwxrwxrwx 1 1000 _lpoperator uappnd,nodump,opaque,compressed 22 Apr 3 2009 fly.pdf -> stuff.pdf
Run Code Online (Sandbox Code Playgroud)
的输出rm是
$ sudo rm fly.pdf
rm: fly.pdf: No such file or directory
Run Code Online (Sandbox Code Playgroud)
但是该文件确实存在,这可以ls通过在 Finder 中打开垃圾箱来确认。如果我使用菜单清空垃圾箱,它会播放该声音并且没有任何反应。如果我尝试安全地清空垃圾箱,它会抱怨没有许可。所以我被卡住了......有什么建议吗?
顺便说一句,有问题的文件位于名为“共享”的卷的垃圾箱中,该卷不是启动卷。
更新:@bug 指出这可能是由于我的链接不透明造成的,并建议在 chroot jail 中将其删除。我试过了,chroot 给了我一个分段错误。这是我为此所做的:我在this之后启用了 root ,并按照 @bug's answer 和this创建了 chroot jail。Chroot 给了我
# chroot /Volumes/Shared
Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud)