我正在尝试在 OSX 上完成启动时运行脚本。我尝试在网上的各种文章和问题之后创建一个 plist 文件,一些来自这里,一些来自媒体和其他地方。但我似乎无法做到正确。我希望脚本在计算机启动时运行,无论哪个用户登录。该脚本是一个简单的 bash 脚本,它检查 S3 存储桶中是否存在对象,如果该对象存在,它会继续运行,然后显然运行脚本的其余部分(在本例中为清理脚本)。
这是我的 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.$
<plist version="1.0">
<dict>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:</string>
</dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.cleanup</string>
<key>Program</key>
<string>/bin/zsh</string>
<key>ProgramArguments</key>
<string>/Users/mlove/Documents/gitpersonal/ejector-seat/cleanup</string>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/startup.stderr</string>
<key>StandardOutPath</key>
<string>/tmp/startup.stdout</string>
<key>UserName</key>
<string>mlove</string>
</dict>
</plist>
这是我要调用的脚本:
#!/bin/zsh
aws s3api wait object-exists --bucket ejector-seat --key button-pressed --profile parachute
rm -rf /Users/${USER}/Desktop/test/*
编辑:我错过了包含以下内容的错误日志:
/bin/zsh: can't open input file: /Users/mlove/Documents/gitpersonal/ejector-seat/cleanup
我尝试制作脚本 777 只是为了测试但仍然出现错误,如果我通过简单地手动运行脚本./cleanup
运行良好,所以我知道脚本本身没问题,所以我认为这与方式有关我在 plist 文件中调用它。
我肯定错过了一些简单的东西,任何帮助将不胜感激!