尝试在启动OSX上运行脚本

问题描述 投票:0回答:1

我正在尝试在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文件中调用它的方式有关。

我肯定会缺少一些简单的东西,我们将为您提供任何帮助!

macos amazon-web-services amazon-s3 plist launchctl
1个回答
0
投票

您的脚本是可执行的,应该直接在Program键中调用,而不是作为解释器的参数。

© www.soinside.com 2019 - 2024. All rights reserved.