问题描述
为什么无法启动加载我的zsh程序?我很迷惑。我的testplisterror.log给了我这个错误:
/ bin / zsh:无法打开输入文件:/Users/controlroom/Desktop/Bin/testplist.zsh-以下是我在launchAgents目录中的com.testplist.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>com.testplist.plist</string>
<key>ProgramArguments</key>
<array>
<string>/bin/zsh</string>
<string>/Users/controlroom/Desktop/Bin/testplist.zsh</string>
</array>
<key>StartInterval</key>
<integer>30</integer>
<key>StandardOutPath</key>
<string>/Users/controlroom/Desktop/testplist.log</string>
<key>StandardErrorPath</key>
<string>/Users/controlroom/Desktop/testplisterror.log</string>
</dict>
</plist>
这是我的testplist.zsh文件:
#!/bin/zsh
date >> ~/Desktop/launchdtest.txt
解决方法
这是因为TCC错误,但由于脚本没有GUI,您不会收到错误。因此,正如戈登·戴维森(Gordan Davisson)所说,苹果公司有一些TTC准则。这些特定的文件夹在Catalina中受TCC保护:
〜/桌面, 〜/文件, 〜/下载, iCloud云端硬盘,
第三方云存储(如果使用), 可移动卷 网络卷。
“逻辑上建议您可以将该脚本添加到“全盘访问”列表中,但是我认为您不能,因为它只接受应用程序和可执行文件。”因此,这里的问题是,由于Apples TCC,目前您无法将.zsh脚本添加到“全盘访问列表”。“
,首先,要启动以抓取文件,您必须添加:
<key>UserName></key>
<string>usernamehere</string>
换句话说,该程序必须以用户名运行-如果您没有此名称,它将找不到该文件。
第二,您必须添加:
<key>GroupName</key>
<string>wheel</string>
第三步-有时,除非您添加
,否则第三方命令无法在脚本中正确执行<key>EnvironmentalVariables</key>
<key>PATH</path>
<string>/usr/local/bin:...etc.</string>
由于某种原因,如果脚本中没有此文件,则找不到第三方CLI应用程序的可执行文件。
因为语法可能很困难且容易出错,所以我强烈建议使用LaunchControl应用程序执行此操作。这是一个非常有用的软件!