【问题标题】:MacOS LaunchDaemon - Zshell script won't expand ~ tildeMacOS Launch Daemon - Shell 脚本不会扩展 ~ 波浪号
【发布时间】:2021-02-03 13:10:12
【问题描述】:

因此,如果我将 plist 文件放入我的 /Library/LaunchDaemons 文件夹,我的 zshell 脚本 不会将 ~ 扩展到当前登录的用户。我必须在我的 shell 上指定完整路径脚本给我想要放置文件的用户。即用户/myusername/filepath/mylog.log

但是,如果我将相同的 plist 文件放入 /Library/LaunchAgents 文件夹并引用相同的文件,则 .zsh 脚本中的 ~ 扩展得很好。我对这种行为感到困惑? (我可以放 ~/filepath/mylog.log 并且它扩展没有问题

(我正在启动的 zshell 脚本是我的 /usr/local/bin 文件夹。)我在我的脚本中广泛使用 ~ 所以我试图弄清楚如何让我的 zshell 脚本扩展 ~ 当我有一个从 LaunchDaemon 执行文件的 plist。 (我需要脚本在睡眠模式或用户注销时启动。)

【问题讨论】:

  • 如果您能向我们展示代码将会很有帮助。

标签: zsh macos-catalina launchd tilde


【解决方案1】:

因此,与代理不同的是,守护程序要求您将要运行守护程序的用户和组放在其下。由于 ~ 是一个等效于 $HOME 的环境变量(同样的事情),如果您没有指定哪个用户帐户,.plist / Daemon 不知道 $HOME 在哪里。有道理。这样做:

<key>GroupName</key>
<string>yourgroup</key>
<key>UserName</key>
<string>myusername</string> 

请注意 - 启动控制应用程序对此非常有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-06
    • 2013-03-29
    • 2012-06-20
    • 1970-01-01
    • 2013-03-07
    • 2011-08-10
    相关资源
    最近更新 更多