gpt4 book ai didi

plist - "hello world"launchd plist 不工作

转载 作者:行者123 更新时间:2023-12-05 00:00:05 27 4
gpt4 key购买 nike

我在 ~/Library/LaunchAgents 有以下 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.yogapo.test_launchd</string>

<key>Program</key>
<string>. /Users/luke/dev/data_yogapo/script/test_launchd.sh</string>

<key>StartInterval</key>
<integer>10</integer>

<key>RunAtLoad</key>
<true/>
</dict>
</plist>

test_launchd.sh 文件包含以下内容:
#! /bin/bash 

echo "hello world from test_launchd.sh" >> /Users/luke/dev/data_yogapo/log/development.log

当我手动运行 test_launchd.sh 时 . /Users/luke/dev/data_yogapo/script/test_launchd.sh结果如预期:该行出现在 development.log 的末尾

但是当我加载这个 plist 文件时,没有任何 react :
$ cd ~/Library/LaunchAgents
$ launchctl load com.yogapo.test_launchd.plist
$ launchctl list | grep yogapo
- 1 com.yogapo.test_launchd

我已经尝试过使用和不使用 RunAtLoad 键。我已经在 SO 以及互联网上的其他地方查看了其他答案。我已经按照教程进行了操作,但什么也没发生。非常感谢任何帮助 - 谢谢!

最佳答案

您在问 launchd运行程序调用

". /Users/luke/dev/data_yogapo/script/test_launchd.sh"

它将采用 Program 的全部值键作为 execvp 的第一个参数(请参阅 man execvp(3) 了解更多详情)

如果您要检查 system日志,你会看到类似的东西:

May 22 21:17:38 dented com.apple.launchd.peruser.501[202] (com.yogapo.test_launchd[32986]): posix_spawn(". /Users/luke/dev/data_yogapo/script/test_launchd.sh", ...): No such file or directory May 22 21:17:38 dented com.apple.launchd.peruser.501[202] (com.yogapo.test_launchd[32986]): Exited with exit code: 1


launchd不是 shell 。但是,它可以解释 hash-bang 字符序列来确定使用哪个程序来解释您的脚本。因此,只需将您的脚本指定为要运行的程序:
<key>Program</key>
<string>/Users/luke/dev/data_yogapo/script/test_launchd.sh</string>

注意:如果您需要向脚本传递参数,请使用 ProgramArguments键,并将整个命令行放在那里。例如:
<key>ProgramArguments</key>
<string>/Users/luke/dev/data_yogapo/script/test_launchd.sh arg1 arg2 arg3</string>

关于plist - "hello world"launchd plist 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10676252/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com