我正在尝试在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文件中调用它的方式有关。
我肯定会缺少一些简单的东西,我们将为您提供任何帮助!
您的脚本是可执行的,应该直接在Program键中调用,而不是作为解释器的参数。