小编Sco*_*nds的帖子

如何在 OS X 上启动时以特定用户身份启动进程?

我想在启动时(而不是登录时)以特定用户身份运行脚本。我认为 launchd LaunchDaemon 会做到这一点,但 'man launchd' 说:

“如果您希望您的服务作为某个用户运行,在该用户的环境中,使其成为启动代理是在 Mac OS X 上完成此任务的唯一支持的方法。换句话说,执行 setuid(2) 是不够的) 成为真正意义上的 Mac OS X 用户。”

他们不是在开玩笑——当我尝试将我的脚本作为 LaunchDaemon 运行时,它不起作用。特别是,我正在尝试使用“security”命令自动执行一些钥匙串操作,当我通过 LaunchDaemon 运行脚本时,它不会让我更改默认钥匙串,尽管脚本在从 shell 使用 sudo 运行时运行良好。

LaunchAgent 不起作用,因为目标是让进程在没有用户登录的情况下运行,而 LaunchAgents 仅在有人登录时运行。我查看了 cron 和 @reboot 指令,看起来很有希望,但我读到 cron 是在 OSX 上已弃用。

startup mac-osx launchd

11
推荐指数
3
解决办法
6164
查看次数

标签 统计

launchd ×1

mac-osx ×1

startup ×1